-5

オブジェクトがFooあり、それをメソッドに渡しvoid Bar(object obj)、内部でオブジェクトの型をテストする場合typeof(obj)は、typeof が Foo かオブジェクトかを返しますか?

4

3 に答える 3

4

typeofonは使用できませんobj。インスタンスではなく、型名のみです。obj.GetType()の実行時型を返すを使用する必要がありますobj。あなたの場合、から派生した型のインスタンスではなく、 のインスタンスであると仮定して、 にType対応するのインスタンスを返します。FooobjFooFoo

于 2013-06-17T14:13:16.103 に答える
3

いいえ、使用する必要がありますobj.GetType()

typeofは、インスタンスなどTypeのタイプのオブジェクトを取得するために使用されますが、 はオブジェクトのインスタンス (実行時オブジェクト) を取得します。typeof(int)Object.GetTypeType

于 2013-06-17T14:12:36.297 に答える
0

通常、 typeof はジェネリック型に使用されます。オブジェクト インスタンスへの参照がある場合、通常は .GetType() を呼び出すだけです。

あなたの質問を確実に理解するために...

var myFoo = new Foo();
Bar(myFoo);

....

void Bar(object myObject)
{
   Type aType = myObject.getType(); // aType will equal typeof(Foo)
于 2013-06-17T14:16:08.227 に答える