2011-02-02 42 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

您正在尋找一個通用約束。這些在C#中用類名後面的where關鍵字表示。

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 
}