c# – 你应该使用属性来初始化构造函数中的字段吗?

真的很简单的问题,我应该使用我的属性初始化构造函数中的字段还是直接引用它们?

例:

public class Foo()
{
   private string example;

   public String Example
   {
      get/set etc..
   }

   public Foo(string exampleIn)
   {
      Example = exampleIn;
   }
}

或者更好的做法是这样做:

public class Foo()
{
   private string example;

   public String Example
   {
      get/set etc..
   }

   public Foo(string exampleIn)
   {
      example = exampleIn;
   }
}

无论哪种方式,我认为不会违反封装,所以我想知道是否有一个首选的方式去?

最佳答案 在C#3.0中引入的自动属性之前,我认为你的第二个例子更“合适”.现在有了自动属性,我认为这是最好的:

public class Foo()
{
   private string example;

   public String Example
   {
      { get; set; }
   }

   public Foo(string exampleIn)
   {
      Example = exampleIn;
   }
}
点赞