CS0075 de erro do compilador
Mensagem de erro
Para converter um valor negativo, é necessário delimitá-lo o valor entre parênteses
Se você estiver lançando usando uma palavra-chave que identifica um tipo predefinido, você não precisa entre parênteses.Caso contrário, você deve colocar os parênteses porque (x) não serão considerados –y uma expressão de conversão.Da especificação da translation from VPE for Csharp seção 7.6.6:
Da regra Desambigüidade segue que, se x e y são identificadores, (y, x) (x)(y), e (x)(-y) são expressões de conversão, mas (x)-y não é mesmo se x identifica um tipo.No entanto, se x for uma palavra-chave que identifica um tipo predefinido (por exemplo, int), todos sistema autônomo quatro formulários são expressões de conversão (porque tal uma palavra-chave não pôde ser possivelmente uma expressão por si só).
O código a seguir gera 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
}
}
}