8

重複の可能性:
Resharper: vars

var thing1 = 5とは対照的に、リシャーパーが提案する理由はありint thing1 = 5ますか? var が人間の読者にとって理解しにくい/理解できないことを除いて、それらはまったく同じことを意味しているようです。コンパイラがそれらを解釈する方法に違いがあるのか​​ 、それとも単なる構文糖衣なのか知りたいです。

4

3 に答える 3

7

いいえ、生成される IL はまったく同じです。

Resharper の提案を採用すると、逆の方向に「提案」されるのではないかと思います。IIRC のデフォルトでは、常にどちらの方向にも変更できるようになっています。ただし、オプション内で提案する内容を変更できます。

于 2011-06-05T21:00:14.650 に答える
5

「var」キーワードの使用は、物議を醸す傾向があります。この議論の「信頼できる」リファレンスはhttp://blogs.msdn.com/b/ericlippert/archive/2011/04/20/uses-and-misuses-of-implicit-typing.aspxです。

于 2011-06-05T21:01:11.177 に答える
2

ReSharper が使用を提案している理由varは、デフォルトでそうするように構成されているためです。

ReSharperのオプションに移動し、「コードインスペクション」の下にある「インスペクションの重大度」設定を見つけ、そのリストを下って、「可能な場合は「var」キーワードを使用する」というラベルの付いた設定を見つけます。

ReSharper は、「提案として表示」のデフォルト設定で、デフォルトで、次varの場合に実際のタイプの代わりに使用することを提案します。

  • あなたはオブジェクトを構築しています(つまりType x = new Type(...);
  • 定数で初期化しています(つまりint x = 5;

どちらの場合でも、ReSharper は正しいタイプを簡単に見つけられると想定するようにプログラムされているため、var.

それが望ましくない場合は、その設定を変更してください。Alt+Enter から取得したドロップダウンでその設定を直接変更することもできます。ドロップダウン メニューの一番下の項目を選択するだけです。

Alt+Enter ドロップダウン メニュー

そして、その設定をどのように処理するかを尋ねるダイアログが開きます:

ダイアログボックス

また、ReSharper にコードを using に変更するように依頼した場合、var元に戻すことは提案されません、Alt+Enter をもう一度押して「タイプを明示的に指定する」オプションを選択することで戻すことができます。

于 2011-06-05T21:09:50.750 に答える