复制
Use of var keyword in C#
C# - Do you use "var"?
Should I always favour implictly typed local variables in C# 3.0?
您是否愿意像这样编写代码:
var myVar = new MyClass();
或
MyClass myVar = new MyClass();
我不反对在上面的示例中使用var
关键字;但是,在下面的代码中,我不喜欢使用var
。
var files = Files.GetFiles();
在这个例子中,变量files
的类型变量并不明显。
您最喜欢使用var
关键字?
答案 0 :(得分:4)
我倾向于在我阅读源代码的地方使用'var',可以推断出变量的类型而无需导航到源代码中的其他位置。
例如,每当我新建一个对象时:
var c = new Customer();
或者在调用返回类型明确的方法时:
var c = Customers.GetCustomerByID(5);
此外,在匿名类型的情况下,'var'必须:
var t = new { Key = "One", Value = 1 };
我当然也将它用于LINQ:
var q = from c in Customers
where c.CustomerID == 5
select c;
在上面的情况下,'q'的类型为IQueryable(假设Customers是Customer对象的枚举)。
同样'foreach'陈述 - 请使用'var':
foreach (var i in intArray) { /* use i */ }
其他例子比比皆是我很确定 - 但这些都是我最常见的用例。
答案 1 :(得分:1)
如果这是一种可行的方式(排除了匿名类型的情况),我会尝试使用任何会使代码在将来更容易理解的内容。有时这意味着如果使用范围很小或者分配给的类型是笨重的(例如,某些嵌套通用)重复并添加杂乱,则使用var。我也倾向于使用大多数人期望看到的var(例如,作为linq查询的声明)。
答案 2 :(得分:0)
我认为最好只在创建新对象(使用var
)和使用LINQ(当然)时使用new
。这使得代码更容易理解,恕我直言。
答案 3 :(得分:0)
我尽可能地使用它。我认为它使代码更加干净和可读。 (我是谁在开玩笑?我只是做重塑者告诉我做的事情:)
this SO thread上的更多内容。