在 C# 中声明成员变量时,主要有两种初始化方法:在声明时直接赋值或在默认构造函数中初始化。本文将探讨每种方法的优缺点,并讨论性能影响。
字段初始化是指在声明成员变量时直接为其赋值。例如:
<code class="language-csharp">private List<object> _things = new List<object>(); private int _arb = 99;</code>
另一方面,构造函数初始化是指在默认构造函数中为成员变量赋值。例如:
<code class="language-csharp">private List<object> _things; private int _arb; public TheClass() { _things = new List<object>(); _arb = 99; }</code>
就性能而言,字段初始化和构造函数初始化之间没有显着差异。两种方法实质上都在构造函数中实现初始化逻辑。唯一的细微差别是,字段初始化器在任何“base”或“this”构造函数调用之前发生。
当使用自动实现的属性时,构造函数方法变得更合适。自动实现的属性不允许字段初始化,因此必须在构造函数中初始化它们。例如:
<code class="language-csharp">[DefaultValue("")] public string Foo { get; set; } public Bar() { // 构造函数 Foo = ""; }</code>
除了上述考虑之外,字段初始化和构造函数初始化之间的选择很大程度上取决于个人偏好和编码风格。但是,有一些一般性指导原则:
在 C# 中初始化成员变量的最佳实践取决于代码的具体需求。虽然性能没有差异,但字段初始化使初始化逻辑局部化,而构造函数初始化允许更复杂的场景。通过考虑每种方法的优缺点,开发人员可以选择最适合其代码的方法。
以上是C# 成员变量:字段初始化与构造函数初始化——哪个最好?的详细内容。更多信息请关注PHP中文网其他相关文章!