5

Resharper を使い始めたばかりです。その機能の 1 つは、適切なコーディング プラクティスに基づいてコードの変更を提案することです。

提案された変更の 1 つは、割り当て中に変数の型を var に変更することです。私は変更を続けましたが、今ではコードのいたるところに var があります。「var」キーワードがコードを少し理解しにくくしているような気がします。

可能な限り「var」を使用することは良いコーディング慣行ですか、それとも実際の型に固執する方が良いですか? (「var」を使用する必要がある匿名型を除く)

ありがとう。

4

2 に答える 2

4

var次のようなコードがある場合に使用することをお勧めします。

var surelyAnXText = new XText(...);

ここで、変数を宣言している必要な型をいつでも知ることができます。しかし、次のような場合はそうではありません:

var whatIsThis = foo.Some_Method_Where_You_Cant_Tell_The_Return_Type_From_The_Name();
于 2010-09-30T21:44:15.087 に答える
3

C# プログラミング ガイドでは、型が明白である、複雑すぎる、またはまったく重要でない場合など、読みやすさを向上させる場合に var を使用することを提案しています。

var キーワードは、変数の特定の型がキーボードで入力するのが面倒な場合、または明らかである場合、またはコードの可読性が向上しない場合にも役立ちます。このように var が役立つ例の 1 つは、グループ操作で使用されるような入れ子になったジェネリック型です。次のクエリでは、クエリ変数の型は です IEnumerable<IGrouping<string, Student>>。あなたとあなたのコードを維持しなければならない他の人がこれを理解している限り、利便性と簡潔さのために暗黙の型付けを使用することに問題はありません。

一般的なルールはありません。明示的な型によって可読性が向上する場合があります。

例:

var x = new Thingy(); //type is obvious

var x = dict.Where(x => x.Value > 3); // type is complex and not important

Foo(GetValue(FromOverThere())); // type is implicit anyway

// equivalent to:
var fromOverThere = FromOverThere();
var value = GetValue(fromOverThere)
Foo(value);

FooDocument doc = repository.Get(id); // glad to see the type here.
于 2010-09-30T21:42:45.153 に答える