C# 这个初始化程序真的是多余的吗?

标签 c# resharper stylecop

我有以下代码行:

var dmrReceived = new DownloadMessagesReport();

StyleCop 和 ReSharper 建议我删除多余的初始化程序。但是,如果我将其替换为

DownloadMessagesReport dmrReceived;

这肯定会生成一个未设置为对象实例的对象引用吗?我正在使用 .NET 3.5。您是否不再需要手动实例化对象?

下一行是:

dmrReceived = dc.DownloadNewMessages(param, param2, param3);

值得注意的是,dc 是从 WCF 服务生成的类。所以 DownloadNewMessages 是一个 WCF 网络服务方法。

最佳答案

如果它是一个字段,它将被自动初始化为其默认值 - null 作为引用类型。然而,考虑到 var,我猜它不是,而且您实际上是在代码中进一步实例化它,从而丢弃您在此处实例化的值。您不需要在声明的地方初始化变量。如果您想使用 var 就可以,但是我建议您在实际首次使用它的地方声明它。

关于C# 这个初始化程序真的是多余的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2026646/

相关文章:

C# Linq All & Any 在空白数组上的工作方式不同

c# - 如何测试线程安全

c# - 访问修改后的闭包,这是 ReSharper 错误吗?

c# - 如何抑制 StyleCop 警告?

c# - 将击键发送到程序,即使它在后台使用 c#

visual-studio - 如何让 Visual Studio 将单元测试放置在我想要的位置?

c# - 如何让 Resharper 将成员上的 "private"和类上的 "internal"显示为冗余错误?

visual-studio-2010 - 如何在 StyleCop.Settings 文件中添加全局警告规则抑制?

jenkins - 如何为 Sonar 指定 StyleCop 设置?

c# - session.Query 未从数据库获取更新的记录