var dog =dogCage.TakeOut();直接把值返回给了dog,dog算什么类型,可以直接输出吗

来源:5-1 泛型类

FireWatch

2017-08-02 10:46

var dog =dogCage.TakeOut();直接把值返回给了dog,如果有多个值,dog能装下吗,还是只会存储最后一个值,dog能调用Dog类PrintName(),原理是什么

写回答 关注

2回答

  • TheForgetTime_
    2017-08-03 16:36:34
    已采纳

    dog的类型是TakeOut()函数返回的类型,如果返回的是数组就可以储存多个值,

    dog可以调用Dog类的PrintName(),是因为dog被动态定义为了Dog类(TakeOut()函数返回了Dog类)

    FireWa...

    非常感谢!

    2017-08-04 09:47:18

    共 1 条回复 >

  • TheForgetTime_
    2017-08-03 16:54:43

    C#提供了三种类似功能的关键字:

    object:所有类型的基类,可以存储任何类型,但不能调用其方法(强制转换后可以);对应编码阶段,由编码人员判定它的类型进行强转。

    var:类型占位符,由编译器判定类型,用它定义的变量不用强制转换,可以调用方法。

    dynamic:真正的动态类型,它的类型在运行是解析,可以使用方法(但是在编码时没有提示)。

C#面向对象编程

本系列教程主要是,带你学习C#面向对象编程的编程思想、编程技巧

68606 学习 · 153 问题

查看课程

相似问题