2013-01-15 65 views
0

我有下面的代碼定義泛型類和實現遺傳接口

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() 
{ 
} 

然後編譯成功。我無法在接口級別定義泛型類型要求?

回答

2

你需要把限制上地方:

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

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