Microsoft says字段和属性必须不只是大小写不同。那么,如果它们真的代表了相同的概念,它们应该如何不同呢?
下面是微软关于不该做的事情的例子:
using System;
namespace NamingLibrary
{
public class Foo // IdentifiersShouldDifferByMoreThanCase
{
protected string bar;
public string Bar
{
get { return bar; }
}
}
}他们没有给出这应该是什么样子的指导。大多数开发人员都做些什么?
发布于 2010-02-11 07:27:32
不,微软表示,公开可见的成员必须不仅仅是大小写的不同:
此规则仅在公开可见的成员上触发。
(这包括受保护的成员,因为它们对派生类是可见的。)
所以这很好:
public class Foo
{
private string bar;
public string Bar { get { return bar; } }
}我的个人规则是无论如何都不允许任何其他私有字段,在这一点上这不是问题。
您真的需要受保护的字段吗?如果你想从派生类中改变属性,让它有一个受保护的setter如何?
发布于 2010-02-11 07:27:45
这可能会让一些开发人员感到厌恶,但我喜欢让我一眼就能区分成员变量和本地变量的命名约定。
所以,我经常这样做:
public class Foo
{
protected string _bar;
public string Bar
{
get { return _bar; }
}
}...or...
public class Foo
{
protected string mBar; // 'm' for member
public string Bar
{
get { return mBar; }
}
}发布于 2010-02-11 07:26:11
我喜欢:
protected string _Bar;
public string Bar
{
get { return _Bar; }
} https://stackoverflow.com/questions/2241105
复制相似问题