Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Para lançar um valor negativo, você deve colocar o valor entre parênteses
Se você estiver transmitindo usando uma palavra-chave que identifica um tipo predefinido, então você não precisa de parênteses. Caso contrário, você deve colocar os parênteses porque (x) –y não será considerado uma expressão de elenco. Da especificação C#, Seção 7.6.6:
Da 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 elenco, mas (x)-y não é, mesmo que x identifique um tipo. No entanto, se x é uma palavra-chave que identifica um tipo predefinido (como int), então todas as quatro formas são expressões de elenco (porque tal palavra-chave não poderia ser 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
}
}
}