我是否总是需要在构造函数中实现字段和属性?
Do I always need to implement fields and properties in a constructor?
今天有件事让我想到了。
我是一名初级程序员,我想知道是否有必要在构造函数中实现字段和属性。
谁能给我举个例子:
- 何时执行此操作以及我为什么要执行此操作
&
- 什么时候不应该这样做以及为什么我不想这样做
提前致谢
顾名思义,构造函数的目的是 "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();
显然,在这种情况下,FirtsName
和 LastName
将为空。如果需要,您必须稍后设置这些值。
另一方面,使用第二种方式,您只能创建一个同时为 firstName 和 lastName 提供值的客户对象。
这两种方法都是正确的,其他方法也是正确的,前提是它们满足您的要求。
var customer = new Customer("firstname","lastname");
今天有件事让我想到了。
我是一名初级程序员,我想知道是否有必要在构造函数中实现字段和属性。
谁能给我举个例子:
- 何时执行此操作以及我为什么要执行此操作
&
- 什么时候不应该这样做以及为什么我不想这样做
提前致谢
顾名思义,构造函数的目的是 "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();
显然,在这种情况下,FirtsName
和 LastName
将为空。如果需要,您必须稍后设置这些值。
另一方面,使用第二种方式,您只能创建一个同时为 firstName 和 lastName 提供值的客户对象。
这两种方法都是正确的,其他方法也是正确的,前提是它们满足您的要求。
var customer = new Customer("firstname","lastname");