在代码中:true/false.
在UI中:是/否或确定/取消
enum Bool { True, False, FileNotFound };
http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx
在代码中:true/false.
在UI中:是/否或确定/取消
true
并false
使得很多更有意义,我在代码-部分是通过熟悉,我敢肯定.我怀疑我会习惯yes
并no
很快.1和0真的不适合我.
考虑表达式
age == 5
这是对真相的测试.价值是age
5?对,是真的."是"和"否"对我来说都没问题,但是对于" age
5 的价值是什么?" 这个问题的回答这个想法.是"1"对我来说似乎很反直觉.仅仅因为这是真实引擎的典型二进制表示并不意味着它在更高的抽象中是有用的.
哪个更容易阅读?
while(true) {} while(yes) {} while(1) {}
在大多数情况下,我会坚持认真.
这是我住的规则......
在用于与CPU通信的编程语言中使用定义良好的常量,即在大多数现代情况下为布尔值的真/假.如果数据库提供了布尔类型或某些等效类型,当然应该使用它.
通过使用他们的首选语言和习语与您的软件用户交互,即,是/否问题应提供是/否(或者可能是否的替代,例如取消).
不确定性应以范围表示,即"依赖",后面将跟着"关于什么?"的问题.我知道开发人员通过将他们可能需要的每个依赖项复制并粘贴到项目的每个代码文件中作为"using"语句来回答问题.这只是草率,请麻烦按字母顺序或至少将名称空间组合在一起.
顺便提一下,C#中可用的一个有趣的转折是Nullable;
你可以写
NullableRespondToIritatingQuestion() { return new Nullable (); }
要么
bool? RespondToIritatingQuestionWithSytle() { return new bool?(); }
提问者在知道答案(如果有的话)之前需要评估你的答案,可能......
bool? answer = RespondToIritatingQuestionWithStyle(); if (answer.HasValue) Trace.WriteLine("The bloke responded with " + answer.Value.ToString()); else Trace.WriteLine("The bloke responded with 'depends'.");