【发布时间】:2009-07-28 15:49:58
【问题描述】:
为什么会收到编译器警告
标识符“Logic.DomainObjectBase._isNew”不符合 CLS
下面的代码?
public abstract class DomainObjectBase
{
protected bool _isNew;
}
【问题讨论】:
-
你可能不应该用下划线标记非私人成员。我知道每个人都有自己的风格,但其他人几乎肯定会认为该领域是不符合惯例的私有领域。
-
@EdS。哪个约定?
-
似乎曾经是一种 VB 约定,对于 C++、C# 来说,它似乎也过时了,更多详细信息无法在此框中找到:stackoverflow.com/questions/3136594/…
-
@Pharap:使用前导下划线命名私有成员是很常见的。我相信
fieldName在 C# 中更常见(至少,这是我经常看到的),但有些人不喜欢它,包括我自己,因为它迫使你到处写this.。 -
@Pharap:实际上,他们没有:msdn.microsoft.com/en-us/library/ms229012(v=vs.110).aspx。 “指南未涵盖内部和私有字段”。你指的是 static 成员,完全不同的野兽。此外,在 C++ 中使用 single 前导下划线作为私有标识符后跟小写字母并没有错。全局命名空间中的任何内容或后跟大写字母,是的。
标签: c# .net cls-compliant