gpt4 book ai didi

c#构造函数默认参数的正确方式

转载 作者:太空宇宙 更新时间:2023-11-03 20:58:13 25 4
gpt4 key购买 nike

所以我需要了解哪种方法是正确的/最好的?

第一种方式:

class Customer
{
string firstName;
string lastName;

public Customer(string firstName="non", string lastName="applicable")
{
this.firstName = firstName;
this.lastName = lastName;
}
}

第二种方式:

class Customer
{
string firstName;
string lastName;

public Customer()
: this("non","applicable")
{ }

public Customer(string firstName, string lastName)
{
this.firstName = firstName;
this.lastName = lastName;
}
}

如果我正在创建方法 printFullName(),它在两种情况下都有效。那么选择哪一个呢?第一个对我来说似乎更容易。

最佳答案

第二种方法更好,因为如果它们不提供任何输入,看起来您打算使用“non”和“applicable”作为名字和姓氏。

如果您只有一个带有可选参数的构造函数,有人可以提供一个名字并将姓氏设置为“适用”,例如“Bob 适用”。

这是一个细微的差别,因为 a) 它以任何一种方式工作,并且 b) 消费者可以分辨出默认参数是什么。但第二种选择似乎更符合您的明显意图。

具体来说,我会重新考虑这些默认值。是否应该有人能够在没有名字的情况下创建客户?如果是这样,那么名称可能应该为空。也许 CustomerName 应该是一个单独的类,并且 Customer 有一个类型为 CustomerName 的 Name 属性。 原因我我对此不以为然,因为你想知道你是否有名字。一旦你提供了一个更难确定的假名。您可以向名为“不适用”的客户发送数百封信。

关于c#构造函数默认参数的正确方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48205792/

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