有人可以告诉我为什么用"// Compiles"编译的行,以及为什么带"//不编译"的行没有?
我不明白为什么A可以隐含地转换为B,而不是相反.
public class SomeClass {
static public void Test() {
AClass a = new AClass();
BClass b = new BClass();
a = b; // Compiles
b = a; // Doesn't compile
}
}
public class AClass {
public void AMethod() {
Console.WriteLine("AMethod");
}
}
public class BClass : AClass {
public void BMethod() {
Console.WriteLine("BMethod");
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!