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


Ошибка компилятора CS0451

Обновлен: Ноябрь 2007

Сообщение об ошибке

Ограничение "new()" не может использоваться вместе с ограничением "struct"
The 'new()' constraint cannot be used with the 'struct' constraint

При указании ограничения на универсальный тип ограничение 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() {}
}