我在一些具有以下常量的C#项目中遇到了一堆代码:
const int ZERO_RECORDS = 0;
const int FIRST_ROW = 0;
const int DEFAULT_INDEX = 0;
const int STRINGS_ARE_EQUAL = 0;
Run Code Online (Sandbox Code Playgroud)
有没有人见过这样的东西?有没有办法合理化使用常量来表示语言结构?IE:C#在数组中的第一个索引位于第0位.我认为如果开发人员需要依赖常量来告诉他们语言是0,那么就会出现更大的问题.
这些常量的最常见用法是处理数据表或"for"循环.
我是不是觉得这些是代码味道?我觉得这些并不比以下更好:
const int ZERO = 0;
const string A = "A";
Run Code Online (Sandbox Code Playgroud)
Ano*_*on. 12
我是不是觉得这些是代码味道?我觉得这些并不比以下更好:
比较以下内容:
if(str1.CompareTo(str2) == STRINGS_ARE_EQUAL) ...
Run Code Online (Sandbox Code Playgroud)
同
if(str1.CompareTo(str2) == ZERO) ...
if(str1.CompareTo(str2) == 0) ...
Run Code Online (Sandbox Code Playgroud)
哪个更直接?
gbn*_*gbn 10
滥用,恕我直言."零"只是其中的基础之一.
虽然STRINGS_ARE_EQUAL可能很简单,但为什么不".Equals"?
有些人认为程序中的任何原始数字都是"神奇的数字".我已经看到编码标准基本上说你不能只是把一个整数写入程序,它必须是一个const int.