gpt4 book ai didi

c# - 私有(private)字段的命名约定

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

首先,我知道这个问题已经被问过好几次了,最后,这主要是个人喜好问题,但是阅读了所有关于这个主题的帖子,有些事情我不太清楚。

基本上,大多数人至少同意的一点是公共(public)成员应该是 PascalCased,而私有(private)成员应该是 lowerCamelCased。

通常引起争论的问题是是否在私有(private)成员前加上下划线或其他任何前缀。前缀违反了几个 StyleCop 规则(虽然很明显可以关闭)

不加前缀的理由是你应该使用它。改为前缀。

我的问题是我不明白它是如何产生影响的?我的意思是,这并不是说你不能在类里面对公共(public)成员使用它。

让我们想象一个 Customer 类,看起来像这样:

class Customer
{
private int age;

public int Age
{
get { return this.age; }
set { this.age = value; }
}
}

(显然,在这种简单的情况下,我可以使用自动属性,但这只是一个示例)。

如果我在此类中添加第二个属性,没有什么会阻止我使用 this.Age(公共(public)属性)而不是 this.age(私有(private)字段)来引用它。有时,如果在 getter 级别应用了一些验证或格式化,这甚至是可取的。

此外,如果我的类的一些其他属性需要修改客户的年龄,那么直接使用该属性而不是支持字段会更有意义,因为 setter 也可以实现一些业务规则验证,对吗?

换句话说,我真的不明白 this 关键字如何避免私有(private)后备成员和公共(public)属性之间的混淆,因为它可以在两者上使用并且 IntelliSense 显示两者?

谢谢。

最佳答案

我非常喜欢私有(private)字段的前导“_”约定,即使它不遵循 MS 约定:

  1. 它消除了与驼峰式参数名称的冲突 - 无需使用“this”

  2. 这是一个视觉指示器,表明正在读取对象的内部持久状态,或者 - 更重要的是 - 正在写入。这是一个标志,上面写着“这在我碰巧正在查看的特定方法之外有副作用”,在查看不熟悉的代码时了解这一点非常重要。

关于c# - 私有(private)字段的命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4540146/

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