C# 我是否总是需要在构造函数中实现字段和属性?

C# 我是否总是需要在构造函数中实现字段和属性?,c#,properties,constructor,field,C#,Properties,Constructor,Field,今天有些事让我思考 我是一名初级程序员,我想知道是否有必要在构造函数中实现字段和属性 var customer = new Customer(); 谁能给我举个例子: 什么时候做,为什么我要做 & 什么时候不做,为什么我不想做 提前感谢构造函数的名称所暗示的用途是正确地“构造”对象。这个词完全取决于我们的观点。例如,让我们声明一个类,该类将表示系统中的客户 这可以通过多种方式实现: 第一条路 public class Customer { public string FirstName

今天有些事让我思考

我是一名初级程序员,我想知道是否有必要在构造函数中实现字段和属性

var customer = new Customer();
谁能给我举个例子:

  • 什么时候做,为什么我要做
  • &

  • 什么时候不做,为什么我不想做

  • 提前感谢

    构造函数的名称所暗示的用途是正确地“构造”对象。这个词完全取决于我们的观点。例如,让我们声明一个类,该类将表示系统中的
    客户

    这可以通过多种方式实现:

    第一条路

    public class Customer
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }
    
    public class Customer
    {
        public string FirstName { get; private set; }
        public string LastName { get; private set; }
    
        public Customer(string firstName, string lastName)
        {
            FirstName = firstName;
            LastName = lastName;
        }
    }
    
    第二种方式

    public class Customer
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }
    
    public class Customer
    {
        public string FirstName { get; private set; }
        public string LastName { get; private set; }
    
        public Customer(string firstName, string lastName)
        {
            FirstName = firstName;
            LastName = lastName;
        }
    }
    
    还有很多其他的方法

    我们走第一条路吧。在这种情况下,可以使用默认的无参数构造函数创建customer对象

    var customer = new Customer();
    
    显然,在这种情况下,
    FirtsName
    LastName
    将为空。如果需要,您必须稍后设置这些值

    另一方面,使用第二种方法,您只能创建一个同时提供firstName和lastName值的customer对象

    这两种方法都是正确的,其他方法也是正确的,只要它们满足您的需求

    var customer = new Customer("firstname","lastname");
    

    不,试一下就会马上告诉你。在你问另一个问题之前,先通过C#来拦截CLR,跳过前两章,然后阅读。我没有一个真正的例子。我不能100%确定何时我有字段和属性将它们放在构造函数中是还是现在。只有当您想将这些值用于其他用途时,才需要这样做吗?