英語で読む

次の方法で共有


コンパイラ エラー CS0451

'new()' 制約は 'struct' 制約と一緒には使用できません。

ジェネリック型に対して制約を指定するとき、 new() 制約は、クラス型制約、インターフェイス型制約、参照型制約、型パラメーター制約と組み合わせた場合のみ使用できます。値型の制約と組み合わせて使用することはできません。

次の例では CS0451 が生成されます。

// CS0451.cs  
using System;  
public class C4
{  
   public void F4<T>() where T : struct, new() {}   // CS0451  
}  
  
// OK  
public class C5  
{  
   public void F5<T>() where T : struct {}  
}  
  
public class C6  
{  
   public void F6<T>() where T : new() {}  
}