「//Compiles」の行がコンパイルされる理由と、「//DOS't Compile」の行がコンパイルされない理由を誰か教えてもらえますか?
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");
}
}
ありがとう!