5

重複の可能性:
C#3.0でのvarキーワードの利点

昨日、MSからの推奨事項に出くわしました。可能な場合は、varを使用する必要があります。

http://msdn.microsoft.com/en-us/library/ff926074.aspx

正しいタイプを使用すると、コードを文書化するのに役立ち、コンパイル時にバグを見つけるのにも役立つといつも思っていました。

この推奨の背後にある理由は何ですか?

最高のトーマス

4

5 に答える 5

10

推奨事項は次のとおりです。

コーディング規約-暗黙的に型付けされたローカル変数

変数の型が割り当ての右側から明らかな場合、または正確な型が重要でない場合は、ローカル変数に暗黙的な型指定を使用します。

常にではありません。

また、それは持っています:

割り当ての右側からタイプがわからない場合は、varを使用しないでください。

同じソースからの例:

// When the type of a variable is not clear from the context, use an 
// explicit type. 
int var4 = ExampleClass.ResultSoFar();
于 2012-09-25T07:01:13.790 に答える
4

暗黙の型付けを使用することは、変数が強く型付けされていないことを意味するわけではありません。これは、コンパイラがステートメントの右側から型を暗示することを意味します。

var i = 1;

iタイプを持つものとして定義されintます。それは言うこととまったく同じint i = 1;ですが、タイプが暗示されています。

同様に、次のコードははるかに読みやすくなっています。

var pairs = new List<pair<int, IEnumerable<string>>>();

入力する必要がある場合よりも:

List<pair<int, IEnumerable<string>>> pairs = new List<pair<int, IEnumerable<string>>>();

それでも結果はまったく同じです。

于 2012-09-25T07:10:00.813 に答える
4

キーストロークを削減するのは、シンタックスシュガーです。

コンパイラーは、RHSで式を評価することにより、LHSで変数のタイプを導き出します。

したがって、以下のようなコード:

var fStream = new FileStream("file", Filemode.Open);

コンパイラによって次のように変換されます。

Filestream fstream = new FileStream("file", Filemode.Open);

コンパイラーは私たちのタイピングのいくつかをとても親切にやってくれます。

于 2012-09-25T07:02:05.050 に答える
2

僕のバカゲ:

var コードが一般的なものである場合は、を使用する必要があります。つまり、タイプが将来変更された場合におそらく正しく機能するかどうか。

于 2012-09-25T07:04:52.507 に答える
0

コンパイラがすべての作業を行うため、varを使用してもパフォーマンスが低下することはありません。入力するよりも短いMyDatabaseModel modelです。

また、varを使用するもう1つの理由は、右側でそれがどのようなタイプであるかを確認できることです。

これを使用する最後の理由は、匿名タイプ用です(タイプがわからない場合はいつでも)。

于 2012-09-25T07:02:49.843 に答える