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

するとコンパイル成功。インターフェイス レベルでジェネリック型の要件を定義する方法がありませんか?

4

1 に答える 1

3

両方の場所に制限を設ける必要があります。

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

public class Dummy<TType> : IDummy<TType> where TType : new()
{
}
于 2013-01-15T20:47:52.437 に答える