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

Do I always need to implement fields and properties in a constructor?

今天有件事让我想到了。

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

谁能给我举个例子:

  1. 何时执行此操作以及我为什么要执行此操作

&

  1. 什么时候不应该这样做以及为什么我不想这样做

提前致谢

顾名思义,构造函数的目的是 "construct" 适当地 一个对象。 适当这个词完全取决于我们的观点。例如,假设我们要声明一个 class,它将代表系统中的 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;
    }
}

以及许多其他方式...

我们采用第一种方式。在这种情况下,您可以使用默认的无参数构造函数创建一个客户对象。

var customer = new Customer();

显然,在这种情况下,FirtsNameLastName 将为空。如果需要,您必须稍后设置这些值。

另一方面,使用第二种方式,您只能创建一个同时为 firstName 和 lastName 提供值的客户对象。

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

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