重複の可能性:
Resharper: vars
var thing1 = 5
とは対照的に、リシャーパーが提案する理由はありint thing1 = 5
ますか? var が人間の読者にとって理解しにくい/理解できないことを除いて、それらはまったく同じことを意味しているようです。コンパイラがそれらを解釈する方法に違いがあるのか 、それとも単なる構文糖衣なのか知りたいです。
重複の可能性:
Resharper: vars
var thing1 = 5
とは対照的に、リシャーパーが提案する理由はありint thing1 = 5
ますか? var が人間の読者にとって理解しにくい/理解できないことを除いて、それらはまったく同じことを意味しているようです。コンパイラがそれらを解釈する方法に違いがあるのか 、それとも単なる構文糖衣なのか知りたいです。
いいえ、生成される IL はまったく同じです。
Resharper の提案を採用すると、逆の方向にも「提案」されるのではないかと思います。IIRC のデフォルトでは、常にどちらの方向にも変更できるようになっています。ただし、オプション内で提案する内容を変更できます。
「var」キーワードの使用は、物議を醸す傾向があります。この議論の「信頼できる」リファレンスはhttp://blogs.msdn.com/b/ericlippert/archive/2011/04/20/uses-and-misuses-of-implicit-typing.aspxです。
ReSharper が使用を提案している理由var
は、デフォルトでそうするように構成されているためです。
ReSharperのオプションに移動し、「コードインスペクション」の下にある「インスペクションの重大度」設定を見つけ、そのリストを下って、「可能な場合は「var」キーワードを使用する」というラベルの付いた設定を見つけます。
ReSharper は、「提案として表示」のデフォルト設定で、デフォルトで、次var
の場合に実際のタイプの代わりに使用することを提案します。
Type x = new Type(...);
)int x = 5;
)どちらの場合でも、ReSharper は正しいタイプを簡単に見つけられると想定するようにプログラムされているため、var
.
それが望ましくない場合は、その設定を変更してください。Alt+Enter から取得したドロップダウンでその設定を直接変更することもできます。ドロップダウン メニューの一番下の項目を選択するだけです。
そして、その設定をどのように処理するかを尋ねるダイアログが開きます:
また、ReSharper にコードを using に変更するように依頼した場合、var
元に戻すことは提案されませんが、Alt+Enter をもう一度押して「タイプを明示的に指定する」オプションを選択することで戻すことができます。