c#混淆If语句?
我总是使用If语句(在C#中)作为(1.可选)
if (IsSuccessed == true)
{
//
}
我知道没有必要将“==true”写为(2.备选方案)
if (IsSuccessed)
{
//
}
但是,我之所以使用它,是因为它更具可读性,并且不会导致性能问题。当然,这是我的选择,我知道许多软件开发人员更喜欢第一种选择。什么是最好的用法,为什么
你可以在下面搜索框中键入要查询的问题!
我总是使用If语句(在C#中)作为(1.可选)
if (IsSuccessed == true)
{
//
}
我知道没有必要将“==true”写为(2.备选方案)
if (IsSuccessed)
{
//
}
但是,我之所以使用它,是因为它更具可读性,并且不会导致性能问题。当然,这是我的选择,我知道许多软件开发人员更喜欢第一种选择。什么是最好的用法,为什么
# 1 楼答案
我更喜欢第二种选择。我认为它更具可读性,但如果出于某种原因需要使用
Boolean?
,第一种选择的优点是保持不变# 2 楼答案
我个人倾向于第二种选择。它读起来更自然,表明程序员实际上知道一个内置的
bool
类型,它是一级公民# 3 楼答案
完全取决于风格。认真地无论你喜欢你自己的东西,无论你的工作风格如何
# 4 楼答案
我声称赞成第一种选择的人对布尔逻辑有粗略的理解。他们可能会理智地“理解”它,但他们肯定不会去摸索它;他们还没有将这种思维方式内化
毕竟,有人会使用下面的成语吗?“如果明天下雨是假的,我们可以去游泳。”——不,当然不是<没有人会说这样的话,太可笑了。有什么论据支持这样一种说法,即当应用于编程语言(与自然语言相反)时,这种习语突然变得清晰起来
# 5 楼答案
我不喜欢第一种选择。它不仅是多余的,而且一个简单的打字错误会引入一个bug
<>考虑这个显然,代码将输出“true”,但这可能不是程序员的意图
幸运的是,像Resharper这样的工具会对此发出警告,但它会使用默认设置(*)进行编译
直接使用bool将完全消除该问题
(*)公平地说,VS也会对此发出警告,如果将警告作为错误打开,它甚至不会编译
# 6 楼答案
如果布尔值的名称清楚地表明它是什么,那么我总是选择版本2。然而,有时你会被一个特别迟钝的变量名所困扰,你不能改变,至少现在不能改变。。。重构很好,但在对代码进行功能更改时,我也尽量避免重构过多
例如:
实际上,我在生产代码中看到了这个特定示例,并将其简化为:
和我个人认为这两个例子都是可读的(尽管第一个例子可能与心理分析困难相一致)比
注意:是的,我知道变量的名称很糟糕,但是在变量出现的众多位置对其进行更改超出了我所做更改的范围,因为位置的数量会影响