どうすればいいですか?
A
がB
から継承されても、を呼び出した後、私のA
オブジェクトがnullです。機能多型。 A:B
class Program
{
public class A : B
{
}
public class B
{
}
static void Main(string[] args)
{
A a = GetB() as A;
Console.WriteLine(a == null); // it is null!
Console.WriteLine("Console.ReadKey();");
Console.ReadKey();
}
public static B GetB()
{
return new B();
}
}
クラスC:B {}。 CはAですか?明らかにそうではありません。どのようにそれができますか?あなたはなぜあなたが* BをAにキャストできなければならないと思いますか? AはBを継承します。 AはBです、それははっきりと分かります。 B?それはCDかもしれないし、多分それは単なる古くからのB.だ@ –
@AnthonyPegram私の答えは以下を参照してください、我々はあまりにも似て考える... – goric
エラーは[より発音](http://c2.com/cgi/wiki?FailFast)あなたが古いスタイルの鋳造をするならば。つまり、 'A a =(A)GetB()' –