2

たとえば、 type param メソッドが与えられた場合、太字の部分のようなものを探しています

void MyMethod< T >() {
if ( typeof(T).Implements( IMyInterface ) ) {

  //Do something   

そうしないと

  //Do something else 

}

C# 3.0 を使用した回答も歓迎しますが、最初に .NET 2.0 を削除してください ;)

4

3 に答える 3

6

Type.IsAssignableFrom

if(typeof(IMyInterface).IsAssignableFrom(typeof(T)))
{
  // something
}
else
{
  // something else
}
于 2008-09-18T19:30:20.673 に答える
1

おもう

if (typeof (IMyInterFace).IsAssignableFrom(typeof(T))

も機能するはずですが、利点がわかりません...

于 2008-09-18T19:30:35.290 に答える
0

使ってみたところ

if( typeof(T).Equals(typeof(IMyInterface) ) 
     ...

また、機能しますが、あなたの答えはより堅牢に見え、私が探していたものでした. ありがとう!

于 2008-09-18T19:34:24.440 に答える