类型推理VAR只有在他必须去替换" int" string"时才能被程序识别。等等。?如果是的话,总是使用VAR会不会更好?
答案 0 :(得分:3)
使用var关键字有利有弊。
使用var
有什么好处使用var的缺点
+好:
var numbers = new int[] {1, 2, 3, 4};
var stringbuilder = new StringBuilder();
var cars = new List();
var orders = new Dictionary();
+/-可以使用(但更喜欢明确声明):
int pages = 10;
string username = “john”;
var username = “john”;
var order = GetOrder(orderId); // ok if the type is Order, otherwise not
for (var x = 1; x < 10; x++)
- 差:
var settings = GetInboxSettings(); // not obvious at all
var userId = GetUserId(); // ambigous, is this guid, string, int or a custom UserId object?
Dictionary orders = new Dictionary(); // redundant
答案 1 :(得分:3)
在MSDN中,there are some guidelines。通常,在这种情况下它有助于提高可读性:
var i = 0
var logText = new StringBuilder()
for
和foreach
声明:foreach (var word in dictionary)
另外,请注意there's a case var
在构建匿名类型时必须使用{{1}}。
答案 2 :(得分:2)
我通常选择var
并尝试选择说出变量名称。但在某些情况下使用实际类型可能非常有用:
在某些特殊情况下,使用实际类型可能会使代码更具可读性。
您可能希望使用null
初始化变量(这是一种可论证的做法),这会阻止编译器推断类型。
通常,特别是在对接口和抽象进行编码时,您希望明确使用接口或基类型,如IEnumerable<Item> items = new List<Item>()