Прочитать на английском

Поделиться через


Ошибка компилятора 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() {}  
}