定义泛型类并实现通用接口

时间:2013-01-15 20:45:47

标签: c# generics

我有以下代码

public interface IDummy<TType> where TType : new()
{
}

public class Dummy<TType> : IDummy<TType>
{
}

由于Error 1 'TType' must be a non-abstract type with a public parameterless constructor in order to use it as parameter 'TType' in the generic type or method 'ConsoleApplication1.IDummy<TType>' D:\Temp\ConsoleApplication1\Dummy.cs 5 18 ConsoleApplication1

,编译失败

但如果我将代码更改为

public interface IDummy<TType>
{
}

public class Dummy<TType> : IDummy<TType> where TType : new()
{
}

然后编译成功。我无法在接口级别定义泛型类型要求吗?

1 个答案:

答案 0 :(得分:3)

您需要将限制放在两个位置:

public interface IDummy<TType> where TType : new()
{
}

public class Dummy<TType> : IDummy<TType> where TType : new()
{
}