c# - 使用隐式类型的局部变量

标签 c# coding-style implicit-typing

<分区>

我刚刚安装了 ReSharper 的试用版,我注意到的第一件事是它总是建议用隐式类型的局部变量替换显式类型的局部变量,例如:

public string SomeMethod(int aParam)
{
    int aNumber = SomeOtherMethod(aParam);
    // should be changed to:
    var aNumber = SomeOtherMethod(aParam);
}

我认为明确类型化的变量更具可读性(更明确)。

您如何看待 ReSharper 的建议?使用隐式类型变量有什么好处吗?什么时候使用隐式/显式变量?

最佳答案

我个人只在只看声明就可以清楚区分变量类型时才使用“var”,例如:

var someVariable = new List<int>();

在上面的例子中,很明显“var”指的是“List”。

我不喜欢使用“var”,因为我必须去一些方法定义来找出“var”代表什么变量类型,或者不得不依赖 visual studio intelli-popup 或任何所谓的,因为这个例子对我来说不好:

var someVaraible = SomeMethod();

我的意思是,“SomeMethod”函数应该返回什么?你能仅通过查看代码行来判断吗?不,你不能,所以这就是我避免在这些情况下使用“var”的原因。

关于c# - 使用隐式类型的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/650919/

相关文章:

c# - 获取 CS1518 : Expected class, 委托(delegate)、枚举、接口(interface)或结构错误

c# - 为什么我要在基类变量中实例化一个对象?

C# 性能 MS verse Mono 问题

Java 访问修饰符关键字(私有(private)、默认、 protected 、公共(public)或最终、静态等..)在 Eclipse 中自动隐藏,但在源文件中显示

c# - 隐式输出参数

c# - 如何在WP7应用程序中显示EULA?

c++ - const int *p 与 int const *p - 类型后的 const 是否可以接受?

php - 包含内部函数被认为是不好的做法吗?

javascript - 在 Javascript 中比较数字时如何避免自动类型强制?

c# - 为什么匿名方法不能赋值给var?