コンパイラ エラー CS0075
負の値をキャストするには、値をかっこで囲んでください。
定義済みの型を指定するキーワードを使用してキャストしている場合、かっこを付ける必要はありません。 それ以外の場合は、かっこを付ける必要があります。(x) –y がキャスト式と見なされないためです。 以下は「C# 言語の仕様」のセクション 7.6.6 からの抜粋です。
あいまいさを排除するための規則に従うと、x および y が識別子である場合は、(x)y、(x)(y)、および (x)(-y) は cast-expression であり、(x)-y は x が型を示していても cast-expression ではありません。 ただし、x が定義済みの型 (int など) を示すキーワードである場合は、このようなキーワードがそれ自体で式になることはないため、先に示した 4 つの形式はすべて cast-expression になります。
次のコードでは 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
}
}
}
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示