2017-11-11 50 views
0

.NETフレームワークでこれまで多くの宣言を行ったことがありますが、.NET Core 2.0ではこれが動作しないのはなぜですか?私はこの方法で列挙型構文エラー?識別子が必要ですか? C#.NET Core 2.0

var op = Operator.Add; 

ような何かをしようとすると、エラーCS1001 Identifier expectedCS1003 Syntax error, ',' expected

として

public enum SomeOtherName 
{ 
    Add, 
    Subtract, 
    Multiply, 
    Divide 
} 

public static IEnumerable<string> Calculate(int num1, int num2, SomeOtherName operator) 
    { 

    } 

VisualStudio2017フラグこれは同様に、私は同じエラーを取得します。どうして?

+2

Visual Studioでエラーが強調表示されている特定のトークンに注意してください。 'operator'は赤い波線で表示され、エラーの原因であることを示します。それはキーワードなので、青で表示されます。 – BACON

+0

@BACON。私は色の変化を見ていませんでした。ありがとう。 – ToshiBoy

+0

'operator'の代わりに' @ operator'を使うことができます。これは構文エラーを生成しません。 – ja72

答えて

3

これは、operatorがC#の予約済みキーワードであるためです。代わりに操作など、何か他のものにパラメータの名前を変更できますか?

public enum Operator 
{ 
    Add, 
    Subtract, 
    Multiply, 
    Divide 
} 

public static IEnumerable<string> Calculate(int num1, int num2, Operator operation) 
{ 

} 
+1

実際にキーワードを変数/パラメータ名として使用することに決めた場合は、接頭辞@を付けてエスケープすることができます。 – CalC

+0

SomeOtherNameに変更しましたが、同じエラーが表示されます。 – ToshiBoy

+0

Facepalm - 変数名が間違っていました。 – ToshiBoy

関連する問題