Partager via


Erreur du compilateur CS0075

Mise à jour : novembre 2007

Message d'erreur

Pour effectuer un cast d'une valeur négative, vous devez la mettre entre parenthèses
To cast a negative value, you must enclose the value in parentheses

Si vous effectuez un cast à l'aide d'un mot clé qui identifie un type prédéfini, vous n'avez pas besoin de parenthèses. Sinon, vous devez utiliser les parenthèses, car (x) –y ne sera pas considéré comme une expression de cast. Extrait du document C# Specification, Section 7.6.6 :

La règle de suppression de l'ambiguïté permet de déduire que si x et y sont des identificateurs, (x)y, (x)(y) et (x)(-y) sont des expressions de cast, mais que (x)-y ne l'est pas, même si x identifie un type. Cependant, si x est un mot clé qui identifie un type prédéfini (tel qu'int), les quatre formes sont alors des expressions de cast (car un tel mot clé ne peut pas être une expression en lui-même).

Le code suivant génère l'erreur CS0075 :

// CS0075
namespace MyNamespace
{
    enum MyEnum { }
    public class MyClass
    {
        public static void Main()
        {
            // To fix the error, place the negative
            // values below in parentheses
            int i = (System.Int32) - 4; //CS0075
            MyEnum e = (MyEnum) - 1;    //CS0075
            System.Console.WriteLine(i); //to avoid warning
            System.Console.WriteLine(e); //to avoid warning
        }
    }
}

Voir aussi

Référence

Cast et conversions de types (Guide de programmation C#)