Ошибка компилятора CS0075
Для приведения отрицательного значения следует заключить значение в круглые скобки
Если выполняется приведение с помощью ключевого слова, идентифицирующего предопределенный тип, то скобки не требуются. В противном случае необходимо использовать скобки, так как (x) –y не будет считаться выражением приведения. Из спецификации C#, раздел 7.6.6:
Из правила устранения неоднозначности следует, что если x и y являются идентификаторами, (x)y (x)(y) и (x)(-y) являются выражениями приведения, но (x) –y — нет, даже если x обозначает тип. Однако если x является ключевым словом, идентифицирующим предопределенный тип (например int), все четыре формы являются выражениями приведения (поскольку такое ключевое слово не может быть выражением само по себе).
Следующий код приводит к возникновению ошибки 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
}
}
}
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: