1

我在最初为 .net v2 编写的项目中使用 StyleCop for Resharper。但是我已经将这个项目升级为 3.5 框架。

Stylecop 建议我将大部分显式类型变量更改为隐式类型,例如:

字符串 - 变量

自定义强类型 - var

这是使用 .net 3.5 项目时的前进方向吗?将所有内容都声明为 var 似乎很不寻常。

如果我的术语已经用完,请随时更新问题标题...

4

5 回答 5

3

在很多地方都被争论过,这取决于品味。比较这两行代码:

StringBuilder stringBuilder = new StringBuilder();
var stringBuilder = new StringBuilder();

你喜欢哪个?

于 2009-12-11T14:15:19.403 回答
3

那些不是泛型,那些是隐式类型变量。这在很大程度上是一个品味问题。有些地方你可以过度使用,var有些地方显然是必要的(想想匿名类型),所以只要在中间找到适合你(和你的团队)偏好的地方。

于 2009-12-11T14:15:43.163 回答
3

看看这个

var(C# 参考)

隐式类型的局部变量(C# 编程指南)

隐式类型的局部变量是强类型的,就像您自己声明了类型一样,但编译器确定类型。

还可以看看在 C# 中使用 var 关键字

C# 辩论:什么时候应该使用 var?

于 2009-12-11T14:15:50.183 回答
0

我相信它更多的是一个建议,应该考虑,但不一定完全实施。

虽然我个人认为 var 的最佳用途是在声明/返回类型很明显时,即:

var temp = "Test me now";

相对

var temp = GetTestData();

此外,我真的很喜欢能够用更少的代码声明泛型类型:

    var test = new Dictionary<string,string>();

相对

    Dictionary<string, string> test = new Dictionary<string,string>();
于 2009-12-11T14:16:12.337 回答
0

var 在使用匿名类型时非常重要...

var cees = from c in Customers select new { c.Name, c.Birthdate };

Resharper 会建议将 all 更改为 var。对于明显的定义,例如

var c = new Customer();

我喜欢用它。对于某些 API 调用,我可能会明确写下类型:

Customer c = repository.Get(1);
于 2009-12-11T14:17:25.797 回答