Error del compilador CS0451

Actualización: noviembre 2007

Mensaje de error

La restricción 'new () ' no se puede utilizar con la restricción 'struct'
The 'new()' constraint cannot be used with the 'struct' constraint

Al especificar las restricciones en el tipo de un genérico, la restricción new() sólo puede utilizarse con restricciones de tipo de clase, restricciones de tipo de interfaz, restricciones de tipo de referencia y restricciones de parámetro de tipo, pero no con restricciones de tipo de valor.

Ejemplo

El siguiente ejemplo genera el error 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() {}
}