2012-01-20 4 views
5

:courcesのC#のキーワードのような変数

foreach (var event in events) 
{ 
... 
{ 

を、それがキーワードであると私たちは、変数「イベント」という名前を付けすることはできません。このような場合には、@ prefix(@event)を使うか、 "currentEvent"のような別の名前を使うのが適切ですか?

+1

私は個人的にはそれをよりわかりやすいようにリファクタリングしますが、私がP/Invokeバインディングのようなことをしていて、元のメソッドと一貫性を持たせるために '@ event'にします。 –

答えて

15

間違いなく別の名前を使用してください。

キーワード変数はC#のすばらしい機能ですが、相互運用性のために使用する必要があります。

3

接頭辞が非常にまれであるため、他の開発者を混乱させる可能性があります。私はここで別の変数名を使用することをお勧めします。

名前がパブリックインターフェイスの一部である場合は異なります。その場合、キーワードであっても正しい名前を使用したいと考えています。しかし、これを行うと、どこでも@を使用しなければならないので、あなたのインターフェイスを使いたい人にとっては難しくなります。

1

個人的には、そのコンテキストとその表現に基づいて名前を付けることをお勧めします。実行される予定のイベントを表す場合は、例としてexecutableEventのような名前を付けます。

代わりに、各イベントを呼び出すためにローカルで使用している場合(たとえば、evtのような省略形の名前を付けてもよい)通常、私はこの種の命名規則に反対しますが、それがちょうど一時的で地方のものであれば、他の人はそれをうまく考えるかもしれません。

1

個人的には、キーワードを使用できるように接頭辞として@と_を使用するのは嫌です。私は、ほとんどの場合、あなたはそれを名前を変更することができると思い、次のいずれか

foreach (var uiEvent in uiEvents) 
{ 
... 
{ 

(より具体的な)

または

foreach (var evt in events) 
{ 
... 
{ 

(速記のいくつかの種類)

+0

ええ、「@」は避けてください。他のプレフィックスとして使用され、人々を混乱させる可能性があります。私。私は母音を省略しています: 'foreach(イベントではev evnt)' – BaBu

5

私は考え通常接頭辞@を使用しないようにしてください。 (私は時々、拡張メソッド@thisの最初のパラメータに名前を付けるのにそれを使用しますが、それはかなりまれです)

他の方法でイベントを記述できるかどうかを確認してください。イベントの具体的なものはですか?

1

私は本当にあなたが別の名前を選択する必要がありそう@を使用しないことをあなたに助言するe_eventまたはcurrentEvent

0

を使用します。いくつか言ったように、より具体的なイベントのタイプにあなたの名前を入力することができます

関連する問題