为什么使用var作为变量类型

时间:2010-08-12 09:01:42

标签: c# keyword

  

可能重复:
  Use of var keyword in C#

我真的不明白为什么你会在C#中使用var关键字

此代码:

var s = "my string";

与:

相同

string s = "my string";

为什么要让编译器确定要使用的最佳类型。当然应该知道使用什么类型。毕竟你正在编写代码?

编写第二段代码是不是更清晰/更清晰?

5 个答案:

答案 0 :(得分:1)

请参阅Use of var keyword in C#

非常非常主观!

就个人而言,当我认为类型是明显的时,我使用“var”,我想从源代码中删除“noise”。

答案 1 :(得分:1)

在那里使用它对我来说没有多大意义。对于某些人,我可以看到更多关于保存输入的观点:

var cache = new Dictionary<int, Page>();

但即便如此,我还是不想这样做,因为智能感知节省了大部分打字。但是对于Linq来说,我几乎总是使用它 - 你可以确定类型,但是如果你改变语句这可能会改变,所以这有点麻烦。

答案 2 :(得分:1)

StringBuilder output = new StringBuilder();

变为

var output = new StringBuilder();

或匿名类型,ala LINQ:

List<MyClass> items = GetItems();
var itemsILike = items.Select(i => new { Cheeky = i.Monkey, Bum = i.Looker });

我以前经常使用它,但现在我试着避免使用它:

var items = GetItems();

但是,对于这个例子,如果你试图对付你知道要重构的另一个解决方案的代码,它仍然有用,但你仍然需要编写代码。

答案 3 :(得分:0)

您使用它是因为var比字符串短,并且如果您有一个表达式(特别是通用表达式),其中类型很长且无需键入。实际情况是,使用var几乎没有任何缺点,因为VS会在鼠标悬停变量名时弹出类型。

答案 4 :(得分:0)

要保存输入并删除不必要的代码,但只有在显而易见的声明类型时才使用