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
}
}
}
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: