私人会员实例化/初始化的最佳实践是什么?

Rob*_* H. 1 .net c#

可能重复:
C#成员变量初始化; 最佳实践?

这有什么好处:

public class RemotingEngine
{
    uint m_currentValueId;
    object m_lock;

    public RemotingEngine()
    {
        m_currentValueId = 0;
        m_lock = new object();
    }
Run Code Online (Sandbox Code Playgroud)

与此:

public class RemotingEngine
{
    uint m_currentValueId = 0;
    object m_lock = new object();
Run Code Online (Sandbox Code Playgroud)

我一直在避开第二个因为它感觉"脏".这显然不那么打字,所以这对我很有吸引力.

Joe*_*orn 7

它可以在继承情况中产生影响.请参阅对象初始化顺序的此链接:http:
//www.csharp411.com/c-object-initialization/

  1. 派生的静态字段
  2. 派生的静态构造函数
  3. 派生的实例字段
  4. 基本静态字段
  5. 基础静态构造函数
  6. 基本实例字段
  7. 基础实例构造函数
  8. 派生的实例构造函数

因此,如果这是派生类,则在初始化派生字段和构造函数运行之间初始化整个基础对象.