建设银行对公打不开网站,合肥百度竞价推广代理公司,海外广告投放渠道营销,网页设计师职责咨询区 mr_georg#xff1a;在 C# 中#xff0c;下面的两种写法在执行效率上是否存在差异#xff1f;if (null ! variable) ...
if (variable ! null) ...因为最近我经常看到这种非自然的写法 null ! variable#xff0c;这让我感到很好奇#xff0c;因为我觉得第二种写法… 咨询区 mr_georg在 C# 中下面的两种写法在执行效率上是否存在差异
if (null ! variable) ...
if (variable ! null) ...因为最近我经常看到这种非自然的写法 null ! variable这让我感到很好奇因为我觉得第二种写法更符合人的阅读习惯。如果两者没有差异的话为什么会存在这种非常规的写法仅仅是因为个人爱好吗回答区 Jon Skeet这是 C 语言的遗留问题如果你的编译器档次不高或者你没有开启高级别的告警配置那下面的代码不会出现什么任何警告信息虽然这段代码也是正确的代码。
// Probably wrong
if (x 5)其实你真正想表达的意思是这样
if (x 5)为了避免这种不小心造成的低级错误,所以就有了变通的写法。
if (5 x)回过头来说如果在 C# 中还是这么玩的话那就有点聪明反被聪明误了你应该写出更可读性的代码因为 C# 中的 if 必须是 boolean 表达式。Lasse V. Karlsen我猜这是一位 C 转过去的程序员在 C 语言中可以写出下面的语句。
int i 0;
if (i 1)
{...
}上面这种写法的意思是将 1 赋值给 i然后返回变量i又因为在 if 表达式条件中这里的 1 会被当作 true 处理严谨一点说其实这是一个bug。在 C# 中还这么写编译器肯定放不过所以本质上来说两者没有区别。点评区 C 中可以这么写我不知道但 Javascript 中经常见到没啥好说的学习了