杰夫完成了他的帖子谈论这个,但我没有理解.
那么,为什么你认为这是一个糟糕的编码风格?
编辑:
我和很多人一样,不认为这是一种糟糕的编码风格.但杰夫比我更好的程序员,如果我错了,他的观点会转过头来点亮我的回答.我是Delphi开发人员已经有几年了,现在我正在成为一名C#开发人员,在Delphi中,这是一种常见的做法.
Dav*_*ley 58
全部大写是预处理器宏常量的传统C指定.将它们放在不同的命名空间中是非常有用的,因为预处理器将替换它找到名称的任何地方,无论范围如何.
从某种意义上说,Jeff正在使用的常量是一个无法改变的变量.它遵循所有范围原则和所有内容,并且在语义上与具有相同值的非const变量相同.
换句话说,
#define max_length 5
Run Code Online (Sandbox Code Playgroud)
是一个问题,因为有人可能会max_length在不同的上下文中使用它作为变量,而通常是安全的
const int max_length = 5;
Run Code Online (Sandbox Code Playgroud)
只是一个变量声明.因此,使用有一个优势
#define MAX_LENGTH 5
Run Code Online (Sandbox Code Playgroud)
因为惯例是只有预处理器常量是全大写的,所以它不会干扰任何其他用途.
ojr*_*rac 30
你会发现许多杰夫的陈述首先是有争议的,准确性是次要问题.如果他的博客偶尔也没有煽动性,那么他的博客就不那么受欢迎.(考虑到空间异教徒死亡的最后一行,"那就是说,只有白痴才会使用制表符来格式化他们的代码.")这显然是主观的.不要把他所说的一切都视为真实和善良 - 这并不意味着.如果你不同意,请在评论中踢他的屁股,看看他是否回信.:)
我觉得ALL_CAPS_CONSTANTS很完美:它们很容易识别和熟悉.我的工作场所风格指南的一部分(我们没有那么多)是用大写字母写出所有静态常量.不要流汗; 只需使用团队其他成员使用的任何内容.决定StudlyCapsvs camelCasevs SCREAMING_CAPS值得花90秒讨论.
坦率地说,我认为编码风格不好.实际上,即使是官方Java代码样式也会使常量全部为大写(http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html),其他语言约定也是如此.
从理论上讲,它更难阅读 - 我们人类喜欢使用可变高度的字母来提高阅读速度(我们可以从粗糙的单词形状和第一个/最后一个字母推断出很多信息).但是,我对短句,所有大写短语都没有问题.它几乎没有"大喊大叫"(你编译器并不关心你有多粗鲁),并且清楚地表明名称可能是可变的,而那些不是.
对我来说唯一令人信服的理由是风格的一致性.对于像Java/C++这样的非.NET语言,全封闭常量当然是可以接受的.
对于C#,标准是使用PascalCase,如下所示:常量的C#命名约定?
| 归档时间: |
|
| 查看次数: |
16350 次 |
| 最近记录: |