2

これらのクラスがあるとしましょう:

Class A {};
Class B : A {} ;

および次を返す関数A:

 public A read_an_A();

Bの子であるため、次の意味でそのプロパティAを読み取れるようにしたいと考えています。A

B b = new B ( read_an_A() );

(デフォルトのコピーコンストラクターの使用を想定しています)

または多分このようなもの:

B b = (B) read_an_A ();

上記のすべてが明らかに壊れています。それを達成する正しい方法は何ですか?

4

2 に答える 2

0

返された A が B であるかどうかわからない場合 - 確認する必要があります。そうしないと、実行時例外が発生します。

var a = read_an_A();
if (a is B) 
{
    var b = (B)a;
    ....
}
于 2013-10-06T14:57:45.503 に答える