Ler em inglês

Compartilhar via


Erro do Compilador CS0075

Para converter um valor negativo, é necessário delimitá-lo com parênteses

Se você estiver convertendo com o uso de uma palavra-chave que identifique um tipo predefinido, não precisará de parênteses. Caso contrário, você deve colocar os parênteses porque (x) –y não será considerado uma expressão de conversão. Na especificação C#, Seção 7.6.6:

Na regra de desambiguação segue-se que, se x e y são identificadores, (x)y, (x)(y) e (x)(-y) são expressões de conversão, mas (x)-y não é, mesmo que x identifique um tipo. No entanto, se x for uma palavra-chave que identifique um tipo predefinido (como int), todas as quatro formas serão expressões de conversão (porque essa palavra-chave não poderia ser uma expressão por si só).

O código a seguir gera o erro 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  
        }  
    }  
}  

Confira também