Compartir a través de


Error del compilador CS0075

Actualización: noviembre 2007

Mensaje de error

Para convertir un valor negativo, el valor debe ir entre paréntesis
To cast a negative value, you must enclose the value in parentheses

Si la conversión se efectúa mediante una palabra clave que identifica un tipo predefinido, los paréntesis no son necesarios. De lo contrario, debe colocar los paréntesis porque (x) –y no se considerará una expresión de conversión. De la especificación de C#, sección 7.6.6:

De la regla de anulación de ambigüedades se deduce que, si x e y son identificadores, (x)y, (x)(y) y (x)(-y) son expresiones de conversión, pero (x)-y no lo es, aunque x identifique un tipo. No obstante, si x es una palabra clave que identifica un tipo predefinido (como int), las cuatro formas son expresiones de conversión de tipos (porque esta palabra clave nunca podría ser una expresión por sí misma).

El código siguiente genera el error 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
        }
    }
}

Vea también

Referencia

Conversiones de tipos (Guía de programación de C#)