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