Kyl*_*ven 4 c# constructor properties naming-conventions
嘿伙计们,我总是遇到一个问题,即类中的Public变量的名称和我传递给相同类构造函数的参数之间的相似性.
在定义对象的新实例时,例如Car.用户/程序员唯一能看到的是它所寻找的参数的名称和类型.
例如:
public Car(Color BodyColor, int NumOfDoors, int SizeOfWheels)
{
}
Run Code Online (Sandbox Code Playgroud)
用户将看到这些名称和类型,并且只能根据其类型和名称知道它们是什么,从而排除任何xml摘要标记.
现在,我们总是希望我们的公共变量也非常具体.
例如:
public Color BodyColor { get; set; }
public int NumOfDoors { get; set; }
public int SizeOfWheels { get; set; }
Run Code Online (Sandbox Code Playgroud)
现在,我们可以回答我的问题.使用这些单行属性,而不是定义变量的私有实例并为其创建属性,如何使这些变量名称更清晰?
我正在尝试使用其他用户可以理解且易于阅读的命名约定.
现在构造函数看起来像
public Car(Color BodyColor, int NumOfDoors, int SizeOfWheels)
{
this.BodyColor = BodyColor;
this.NumOfDoors = NumOfDoors;
this.SizeOfWheels = SizeOfWheels;
}
Run Code Online (Sandbox Code Playgroud)
这是其他C#程序员写的吗?是否存在已存在的命名约定?乍一看,上面的陈述看起来有点乱,特别是如果你省略了this.
Ste*_*bbi 16
我从未见过首字母大写的方法参数.我建议不要这样做,因为它不是标准.'这个'也变得没必要了.在我看来,下面的代码更具可读性.此外,您会注意到.NET API调用的方法参数没有首字母大写.这适用于任何函数原型,而不仅仅是构造函数.
编辑:如果您的属性仅在构造函数中设置为SET,我建议将setter设为私有(此处的示例代码中未显示).如果永远不再设置值,另一个好的做法是让它们由字段支持,并使字段为只读.这有点超出了您的问题范围,但与定义和命名字段和属性有关.
public Car(Color bodyColor, int numOfDoors, int sizeOfWheels)
{
BodyColor = bodyColor;
NumOfDoors = numOfDoors;
SizeOfWheels = sizeOfWheels;
}
Run Code Online (Sandbox Code Playgroud)
注意:与原始问题中的代码相比,即使Stack Overflow语法突出显示也使其可读.
| 归档时间: |
|
| 查看次数: |
8456 次 |
| 最近记录: |