在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
}谢谢。
发布于 2011-02-02 08:13:30
您正在寻找一个泛型约束。这些都是通过在类名后面使用where关键字在C#中表示的。
public class UtilityClass<T> where T:IMyInterface
{
}发布于 2011-02-02 08:15:01
public class UtilityClass<T> where T: IMyInterface
{
// some utility function
}它们被称为约束,您可以在这里阅读更多内容http://msdn.microsoft.com/en-us/library/d5x73970.aspx
发布于 2011-02-02 08:14:15
使用where子句:
public interface IMyInterface
{}
public class UtilityClass<T> where T : IMyInterface
{
// some utility function
}https://stackoverflow.com/questions/4869462
复制相似问题