2009-06-01 8 views
2

スーパークラスAと、Aから継承したサブクラスA1とA2があると仮定して、下のコードで変数のサブクラスタイプを取得するにはどうすればよいですか?私はA2のsublcassある別のサブクラスA2_1を持っていた場合スーパークラスとして宣言されたインスタンスのサブクラスタイプを調べる

A _a1 = new A1(); 
A _a2 = new A2(); 
// Need type of A1 and A2 given the variables _a1 and _a2. 

はまた、どのように私は以下のコードを与えられた最低のサブクラスの種類を得るのですか?

A _a2_1 = new A2_1(); 

EDIT:Thanks for answers。どのようなブーブー。以上の問題を考えて、GetType()を試してみませんでした。 =/

答えて

5

Console.WriteLine(_a1.GetType());

メソッドGetTypeにかかわらず、宣言型の変数の実行時の型を返すことができます。

1

初めての場合_a1.GetType()_a2.GetType()を使用してください。第2回 - あなたは "最低のサブクラスタイプ"をどういう意味ですか?または:どのような答えあなたは ...期待ん(私たちはあなたが何を意味するか理解するのに役立つかもしれない...)

2

あなたはメソッドGetType()メソッドを使用できます。いずれにも

Type type = _a1.GetType(); 
Type subtype = _a2_1.GetType(); 
1

メソッドGetType()をオブジェクトは常にあなたに実オブジェクト型を与え、決してスーパークラスの型を与えません。 "new subclass()"を使用してサブクラスのインスタンスを作成する場合、 "subclass"はオブジェクトのタイプです。

GetType()を呼び出すことは、状況に合わせて必要なものです。

関連する問題