对象问题的类型

joj*_*ojo 0 c# types interface

在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
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

Ada*_*son 6

您正在寻找通用约束.这些在C#中使用where类名后面的关键字表示.

public class UtilityClass<T> where T:IMyInterface
{

}
Run Code Online (Sandbox Code Playgroud)