在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
}
感谢。
答案 0 :(得分:6)
您正在寻找通用约束。这些在C#中使用类名后面的where
关键字表示。
public class UtilityClass<T> where T:IMyInterface
{
}
答案 1 :(得分:1)
public class UtilityClass<T> where T: IMyInterface
{
// some utility function
}
它们被称为约束,你可以在这里阅读更多http://msdn.microsoft.com/en-us/library/d5x73970.aspx
答案 2 :(得分:0)
使用where子句:
public interface IMyInterface
{}
public class UtilityClass<T> where T : IMyInterface
{
// some utility function
}
答案 3 :(得分:0)
您可以对通用类添加限制,如下所示:
public class UtilityClass<T> where T : IMyInterface
{
// some utility function
}