我在最初为.net v2编写的项目中使用StyleCop for Resharper。但是我已经为3.5框架升级了这个项目。
Stylecop建议我将显式类型变量的大部分更改为隐式输入,例如:
string - var
自定义强类型 - var
这是使用.net 3.5项目时的前进方向。似乎不寻常地将所有内容声明为var。
如果我的术语已经出来,请随时更新问题标题...
答案 0 :(得分:3)
在很多地方都有争议,而且还有很多尝试。比较这两行代码:
StringBuilder stringBuilder = new StringBuilder();
var stringBuilder = new StringBuilder();
您更喜欢哪个?
答案 1 :(得分:3)
那些不是泛型,那些是隐式类型变量。这主要是品味问题。有些地方你可以过度使用var
,并且有些地方非常需要(想想匿名类型),所以只需在中间找到适合你(和你的团队)偏好的地方。
答案 2 :(得分:3)
看看这个
Implicitly Typed Local Variables (C# Programming Guide)
隐式类型的局部变量是 强烈打字,就像你有 自己宣布了类型,但是 编译器确定类型。
答案 3 :(得分:0)
我认为它更像是一个建议,应该加以考虑,但不一定完全实施。
虽然个人认为var的最佳用途是声明/返回类型很明显,即:
var temp = "Test me now";
与
var temp = GetTestData();
此外,我真的很高兴能够用更少的代码声明泛型类型:
var test = new Dictionary<string,string>();
与
Dictionary<string, string> test = new Dictionary<string,string>();
答案 4 :(得分:0)
var非常重要匿名类型......
var cees = from c in Customers select new { c.Name, c.Birthdate };
Resharper建议将所有内容更改为var。对于明显的定义,如
var c = new Customer();
我喜欢用它。 对于某些API调用,我可以明确写下该类型:
Customer c = repository.Get(1);