c# - 使用对象初始化器 - Resharper 建议

标签 c# optimization resharper object-initializers

我每天都使用 ReSharper,今天我问自己为什么 ReSharper 在我这样做时建议“使用对象初始化程序”:

MyClass myClass = new MyClass();
myClass.MyInt = 0;
myClass.MyString = string.Empty;

它被替换为:

MyClass myClass = new MyClass
{
    MyInt = 0, 
    MyString = string.Empty
};

这是否优化了我的代码的执行,还是只是重新格式化的问题?

就我个人而言,我喜欢它。但有时我讨厌它,因为这个:

Resharper

我无法进行逐步调试:(

最佳答案

第二个包含的字符较少,因此阅读起来更紧凑。您不必再重复 myClass 2 多次,并且初始化逻辑在一个 block 中。

它实际上是一种语法糖,不会改变生成的代码中的任何内容。如果您不喜欢它,您可以随时禁用 ReSharper 上的警告。

此处有一篇关于使用对象初始化器的优点的长篇博文:

关于c# - 使用对象初始化器 - Resharper 建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20683279/

相关文章:

C# 实用功能静态方法/静态类/单例模式

c - C 中更快的 IO 的其他选项是什么

c# - 编译器是否优化了字符串文字?

c# - 有没有办法在 visual studio 中设置命名参数的样式?

c# - HTML 标签如何转换为 HtmlControl?

c# - 我正在尝试获得 ftp 下载文件的速度,但有时我变得无穷大,为什么?

c - 比特范围内的减法

c# - 方法可以静态化,但应该吗?

visual-studio-2010 - ReSharper缓慢而麻烦

c# - 存储客户端库 2.0 - 为什么 API 使用起来不如 1.7 那么直观?