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