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

时间:2015-04-15 14:27:18

标签: c# properties constructor field

今天有些东西让我思考。

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

有人可以给我一个例子:

  1. 何时这样做,为什么我要这样做
  2. &安培;

    1. 何时不这样做以及为什么我不想这样做
    2. 提前致谢

1 个答案:

答案 0 :(得分:1)

正如其名称所暗示的构造函数的目的是“构造”正确一个对象。 正确这个词完全取决于我们的观点。例如,假设我们要声明一个代表系统中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");