Erreur du compilateur CS0451
Mise à jour : novembre 2007
Message d'erreur
La contrainte 'new()' ne peut pas être utilisée avec la contrainte 'struct'
The 'new()' constraint cannot be used with the 'struct' constraint
Lors de la spécification de contraintes sur le type d'un générique, la contrainte new() peut être utilisée uniquement avec des contraintes de type classe, des contraintes de type interface, des contraintes de type référence et des contraintes de paramètre de type, mais pas avec des contraintes de type valeur.
Exemple
L'exemple suivant génère l'erreur 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() {}
}