2011-02-02 2 views
0

C#では、私はインターフェイスを持っています、そして、このインターフェイスを実装するいくつかのクラスがあります。 私は汎用のユーティリティクラスを持っています。これは、ユーティリティクラスがそのインターフェイスを実装する型だけを使って宣言できるようにしたいのですが、以下に示すように、どうすればいいのですか?オブジェクトのタイプのタイプ

public interface IMyInterface 
{} 

public class A : IMyInterface {} // can pass into UtilityClass 
public interface B : IMyInterface{} 
public class C : B {} // can pass into UtilityClass 
public class D {} // can Not pass into UtilityClass 

public class UtilityClass<T is IMyInterface> 
{ 
// some utility function 
} 

ありがとうございます。

答えて

6

一般的な制約があります。これらは、クラス名の後にwhereキーワードを使用してC#で表されます。

public class UtilityClass<T> where T:IMyInterface 
{ 

} 
0

where句を使用します。あなたがそうのような一般的なクラスに制限を追加することができます

public interface IMyInterface 
{} 


public class UtilityClass<T> where T : IMyInterface 
{ 
// some utility function 
} 
0

を:

public class UtilityClass<T> where T : IMyInterface 
{ 
// some utility function 
} 
関連する問題