gpt4 book ai didi

c# - 构造函数参数的命名约定?

转载 作者:太空狗 更新时间:2023-10-30 00:03:44 24 4
gpt4 key购买 nike

我总是对类中公共(public)变量的名称与我传递给相同类构造函数的参数之间的相似性有疑问。

当您定义一个对象的新实例时,例如,Car。用户/程序员唯一能看到的是它正在寻找的参数的名称和类型。

例如:

public Car(Color BodyColor, int NumOfDoors, int SizeOfWheels)
{
}

用户会看到这些名称和类型,并且只能根据它们的类型和名称知道它们是什么,不包括任何 xml 摘要标记。

现在,我们总是希望我们的公共(public)变量也非常具体。

例如:

public Color BodyColor { get; set; }
public int NumOfDoors { get; set; }
public int SizeOfWheels { get; set; }

现在,我们可以开始我的问题了。使用这些单行属性,而不是定义变量的私有(private)实例并为其创建属性,如何使这些变量名称更清晰?

我尝试使用其他用户会觉得容易理解和阅读的命名约定。

现在构造函数看起来像

public Car(Color BodyColor, int NumOfDoors, int SizeOfWheels)
{
this.BodyColor = BodyColor;
this.NumOfDoors = NumOfDoors;
this.SizeOfWheels = SizeOfWheels;
}

这是其他 C# 程序员会写的吗?是否有一个已经存在的命名约定?乍一看,上面的语句看起来有点乱,尤其是如果您省略了 this.

最佳答案

我从未见过首字母大写的方法参数。我建议不要这样做,因为它不是标准。 “这个”也变得不必要了。在我看来,下面的代码更具可读性。此外,您会注意到 .NET API 调用的方法参数的首字母没有大写。这适用于任何函数原型(prototype),而不仅仅是构造函数。

编辑:如果您的属性仅在构造函数中设置,我建议将 setter 设为私有(private)(此处的示例代码中未显示)。另一个好的做法是,如果永远不会再次设置这些值,则让它们由一个字段支持,并将该字段设置为只读。这有点超出您的问题范围,但与定义和命名字段和属性有关。

public Car(Color bodyColor, int numOfDoors, int sizeOfWheels)
{
BodyColor = bodyColor;
NumOfDoors = numOfDoors;
SizeOfWheels = sizeOfWheels;
}

注意:与原始问题中的代码相比,即使是 Stack Overflow 语法突出显示也使其具有可读性。

关于c# - 构造函数参数的命名约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5707907/

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