对象问题的类型

时间:2011-02-02 00:12:22

标签: c# interface types

在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
}

感谢。

4 个答案:

答案 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
}
相关问题