我经常发现我想在C#中编写类似这样的代码,但我对标识符名称感到不舒服:
public class Car
{
private Engine engine;
public Engine Engine
{
get
{
return engine;
}
set
{
engine = value;
}
}
public Car(Engine engine)
{
this.engine = engine;
}
}
Run Code Online (Sandbox Code Playgroud)
这里我们有四种不同的东西叫做"引擎":
Engine
班级.引擎似乎是一个好的,自然的名字.Engine
公共财产.似乎很傻把它称为MyEngine或TheCarsEngine.engine
支持财产的私人领域.一些命名方案将推荐m_engine
或_engine
,但其他人说应该避免所有前缀.engine
构造函数上的参数名称.我已经看到了命名方案,建议在所有参数上加上下划线,例如_engine
.我真的不喜欢这个,因为调用者可以通过Intellisense看到参数.我不喜欢写的代码的特定事情是:
this.engine = Engine;
看起来每个名字都是孤立的,但它们一起是坏的.有什么东西要屈服,但是什么呢?我更喜欢更改私有字段,因为它对用户不可见,所以我通常最终会m_engine
解决一些问题,但会引入一个前缀并且不会阻止Intellisense更改engine
为Engine
.
你会如何重命名这四个项目?为什么?
(注意:我意识到这个例子中的属性可能是一个自动属性.我只是不想让这个例子过于复杂.)
另请参阅: 使用不同于其类型的变量名称,我是不道德的?
对于私人会员,我总是以下划线作为前缀:
private Engine engine;
Run Code Online (Sandbox Code Playgroud)
变为:
private Engine _engine;
Run Code Online (Sandbox Code Playgroud)
每当我看到m_
它,它就会让我的胃变冷.
归档时间: |
|
查看次数: |
376 次 |
最近记录: |