【发布时间】:2013-10-22 20:39:54
【问题描述】:
我需要澄清一个对象类型变量如何接受下面代码sn-p中给定的类类型实例,
class MyClass
{
}
static void Main()
{
object obj = new MyClass();
}
由于 MyClass 不是对象类型,但 MyClass 的实例仍然在 obj(object) 变量中被接受。
【问题讨论】:
-
每个类型都继承自对象,所以 MyClass 是一种对象。
-
Type 的意思,这里指的是 MyClass 对吧?它不是从对象派生的..
-
@Sankarann - 为什么你认为
MyClass不是源自Object? -
@Sankarann MyClass 隐式派生自对象,因为它是所有值和引用类型的基类
-
@Sankarann - 是的,它不见了。这既是福也是祸。因为每个类型都是从
Object派生的,所以您不需要显式地将Type : Object放入其中。 C# 编译器会自动为您执行此操作。 (诅咒是:如果你不知道,可能会引起混乱)。我建议您阅读CLR via C#,这将使您深入了解“幕后”发生的事情。
标签: c#