相关疑难解决方法(0)

"if([bool] == true)"是否需要比"if([bool])多一步"?

这是一个纯粹迂腐的问题,以满足自己的好奇心.

我倾向于在问题中使用后一种选择(所以if (boolCheck) { ... }:),而同事总是写前者(if (boolCheck == true) { ... }).我总是有点嘲笑他,并且从他第一次开始编程时他总是把它解释为一种旧习惯.

但是我今天刚刚想到,实际写出整个== true部分可能实际上需要一个额外的处理步骤,因为任何带有==运算符的表达式都会被计算为布尔值.这是真的?

换句话说,据我所知,没有 == true行的选项可以松散地描述如下:

  1. 检查X.

使用 == true行的选项更像是:

  1. 如果X为真,则Y为真,否则为假
  2. 检查Y.

我对么?或者也许任何普通的编译器/解释器都会消除这种差异?或者我忽略了什么,而且根本没有什么区别?

显然,在实际观察到的性能方面没有区别.就像我说的,我只是好奇.

编辑:感谢所有实际发布编译结果的人,以说明两种方法之间的步骤是否不同.(看起来,大部分时间,它们都是,虽然只是轻微的.)

我只想重申,我并不是在问什么是"正确的"方法.我知道很多人喜欢一个人而不是另一个人.我也理解,从逻辑上讲,两者是相同的.如果CPU执行的实际操作对于两种方法完全相同,我只是很好奇; 事实证明,在很多时候(显然它取决于语言,编译器等),它们不是.

optimization boolean

28
推荐指数
5
解决办法
3万
查看次数

混淆If Statement?

我总是使用If语句(在C#中)作为(1. Alternative);

if (IsSuccessed == true)
{
   //
}
Run Code Online (Sandbox Code Playgroud)

我知道没有必要写"== true"作为(2. Alternative));

if (IsSuccessed)
{
   //
}
Run Code Online (Sandbox Code Playgroud)

但是,我使用它是因为它更具可读性并且不会导致性能问题.当然,这是我的选择,我知道许多软件开发人员更喜欢第一种选择.什么是最佳用法,为什么?

c# java if-statement

12
推荐指数
6
解决办法
1025
查看次数

==运算符和操作数

我想检查一个值是否等于1.以下代码行是否有任何区别

评估值== 1

1 ==评估价值

在编译器执行方面

equality operators

5
推荐指数
4
解决办法
810
查看次数

在c#区别(user == null)和(null == user)

可能重复:
(0 ==变量)或(null == obj):C#中过时的练习?
为什么在C#中经常会看到"null!= variable"而不是"variable!= null"?

我见过很多次人们将null评估为变量而不是将变量评估为null.

if(null== user)
Run Code Online (Sandbox Code Playgroud)

代替

if(user==null)
Run Code Online (Sandbox Code Playgroud)

我知道两者都试图实现相同的功能.所以,它是一些标准还是纯粹的个人偏好.请评论.

c#

4
推荐指数
5
解决办法
1279
查看次数

标签 统计

c# ×2

boolean ×1

equality ×1

if-statement ×1

java ×1

operators ×1

optimization ×1