gpt4 book ai didi

c# - 在 C# 中构造对象的首选方法是什么?构造函数参数或属性?

转载 作者:IT王子 更新时间:2023-10-29 04:15:27 26 4
gpt4 key购买 nike

我想知道,在 C# 中构造新对象的首选方法是什么?

学习 Person 类:

public class Person 
{
private string name;
private int age;

//Omitted..
}

我应该创建它来使用:

New Person("name", 24);

New Person() { Name = "name", Age = 24 };

这只是品味问题还是有充分的理由使用其中一种?

我可以想象,应该只使用构造函数中的必填字段和可选字段,而不是作为构造函数参数,而是使用属性。

我说得对吗?

最佳答案

首选方式取决于您的设计。

构造函数属性用于正确构造对象所需的项目。也就是说,对象为了初始化而应该具有的任何属性都需要在构造函数中(你通常不希望在调用构造函数后部分初始化对象,除非你正在创建工厂或构建器模式并且除了工厂/ builder 之外,构造函数对所有人都是隐藏的。

属性初始化器最适合在您的特定用例需要但对象被视为已初始化的构造函数之后进行额外配置。

例如,您可以有一个代表一个人的对象。一个人需要一个名字和一个年龄来初始化,但他们居住的地址是一个可选配置。因此,姓名和年龄是构造函数参数,地址是可读/可写属性。

Person johnDoe = new Person("John Doe", 24) { Address = "42 Adams Street" };

关于c# - 在 C# 中构造对象的首选方法是什么?构造函数参数或属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/863045/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com