8

StyleCopのソースコードを閲覧していると、奇妙なことがわかりました。

/// <summary>
/// The namespace that the rule is contained within.
/// </summary>
private string @namespace;

// [...]

internal Rule(string name, string @namespace, string checkId, string context, bool warning) : this(name, @namespace, checkId, context, warning, string.Empty, null, true, false)
{
    Param.Ignore(name, @namespace, checkId, context, warning);
}

なんだ、これ?namespaceキーワードではなくフィールドであることを示すためにアットマークが使用されている単純なフィールドですか?その場合、アットマークを予約語(たとえば、など)に使用できます@dynamic@using

4

5 に答える 5

6

基本的にはい。変数名の前に@を付けると、その変数名がキーワードであるために発生するエラーが停止します。

http://msdn.microsoft.com/en-us/library/x53a06bb(VS.71).aspx

于 2010-05-12T11:25:53.857 に答える
4

はい@記号を予約語の前に置いて、変数名として使用できるようにすることができます。

var @dynamic = ...
var @event = ....

私は実際にこの質問からそれと他のことを学びました

于 2010-05-12T11:25:50.690 に答える
1

はい、変数の文字@として使用できます。first and only first

于 2010-05-12T11:26:39.687 に答える
1

この手法は通常、自動コード生成とペアになっています。ターゲット言語のキーワードである識別子が生成される場合があります。たとえば、Xmlスキーマでコード生成が実行されてC#クラスが生成される場合、スキーマには「イベント」という属性があります。これはC#キーワードであるため、コードジェネレーターは代わりに「@event」を使用できます。

于 2010-05-12T11:44:48.520 に答える
0

他の人が答えたように、正確には、接頭辞「@」を付ける限り、予約キーワードを使用できますが、IMHO、それは良い開発慣行ではありません。むしろ、マシンで生成されたコードでのみ使用したいと思います(たとえば、私が働いている会社では、JavaコードをC#に変換するツールがあります。Javaでは「イベント」は予約語ではないため、Javaソースコードはそのような識別子を含む)

一番

アドリアーノ

于 2010-05-12T11:31:01.330 に答える