相关疑难解决方法(0)

为什么允许从超类到子类的隐式转换?

有人可以告诉我为什么用"// 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)

谢谢!

.net c# inheritance type-conversion implicit-cast

5
推荐指数
3
解决办法
4811
查看次数

标签 统计

.net ×1

c# ×1

implicit-cast ×1

inheritance ×1

type-conversion ×1