为什么我不能隐式地将此对象强制转换为类引用

use*_*870 2 c# oop

有人可以解释为什么这不起作用?

MyClass myClass1 = new MyClass();
object obj = myClass1;
MyClass myClass2 = obj; <-- error
Run Code Online (Sandbox Code Playgroud)

如果目标文件"点"到MyClass类型相同的内存块,那么我为什么不能"点" myClass2的内存在最后一行相同的块?

谢谢你的帮助.

Jay*_*van 7

myClass2的类型是" MyClass".您可以为其分配任何属于或源自的类型的值MyClass. object不是也不是来自MyClass,所以你需要一个演员.

如果它能够隐式地执行此操作,如果您使用不是真正的对象执行此操作会发生什么MyClass


uow*_*d01 7

c#编译器只允许您从派生类隐式转换为基类,而不是相反.在您的情况下,您需要从对象显式转换为派生类Myclass