13

重複の可能性:
varキーワードのポイントは何ですか?
varを使用すると、C#の明示的な型に比べてどのような利点がありますか?

私はいつも他の人が次のようなコードを作成しているのを見ます:

var smtp = new SmtpClient();

しかし、なぜこの場合varの代わりに使用するのSmtpClientですか?私はいつも使う

SmtpClient smtp = new SmtpClient();

varより効率的ですか?var実際の変数タイプの代わりに使用するのはなぜですか?私は何かが足りないのですか?

4

4 に答える 4

31

これを想像してみてください。

Dictionary<Dictionary<String, String>, String> items = new Dictionary<Dictionary<String, String>, String>();

varそのようなことに役立ちます。

var items = new Dictionary<Dictionary<String, String>, String>();

はるかに簡単です。のポイントはC++11varの場合と同じですauto。コンパイラは型を認識しているので、なぜこれほど多くのことを繰り返さなければならないのでしょうか。私が個人的に使用するvarことはめったにありませんが、長い宣言のためだけです。単なる構文糖衣です。

于 2012-05-13T14:59:29.393 に答える
21

いいえ、それは効率性ではなく、コードの書き方だけです。

スタイルに関することを考えると、このルールは常に適用できるとは限りません。

次のスニペットを想像してみてください。

var myVar = Some3dPartFunction()、の種類myVar何ですか?このように書くことは、コードスタイルの観点からは、完全に明確ではなく、良くありません。

要するに、巧妙な方法で適切な文章を選択してください。

于 2012-05-13T14:56:03.137 に答える
4

いいえ、それはより効率的ではありません。型を明示的に書くのと同じことです。var実際、コードを読みやすくするため、使用する代わりに変数の型を記述するのは良いプログラミングです。

それで:

var smtp = new SmtpClient();

と:

SmtpClient smtp = new SmtpClient();

同じことが2つの異なる方法で書かれていますか。

于 2012-05-13T15:10:10.573 に答える
3

シンタックスシュガーです:

var smtp = new SmtpClient(); 

等しい:

SmtpClient smtp = new SmtpClient();

これは、型推論と呼ばれるC#3.0の新機能です。

于 2012-05-13T15:06:56.657 に答える