我一直||在OR表达式中使用(两个管道),包括C#和PHP.偶尔我会看到一个使用的管道:|.这两种用法有什么区别?当使用一个在另一个之上时是否有任何警告或者它们是否可以互换?
好的,所以我已多次阅读过这篇文章,但我还没有听到一种清晰,易懂(且令人难忘)的方法来了解它们之间的区别:
if (x | y)
Run Code Online (Sandbox Code Playgroud)
和
if (x || y)
Run Code Online (Sandbox Code Playgroud)
..在C#的背景下.任何人都可以帮助我学习这个基本事实,以及C#如何具体地对待它们(因为它们似乎做同样的事情).如果给定代码片段之间的差异是无关紧要的,我应该将其默认为最佳实践?
我有这个代码.
byte dup = 0;
Encoding.ASCII.GetString(new byte[] { (0x80 | dup) });
Run Code Online (Sandbox Code Playgroud)
当我尝试编译时,我得到:
无法将类型'int'隐式转换为'byte'.存在显式转换(您是否错过了演员?)
为什么会这样?不应该| 两个字节给出一个字节?以下两项工作,确保每个项目都是一个字节.
Encoding.ASCII.GetString(new byte[] { (dup) });
Encoding.ASCII.GetString(new byte[] { (0x80) });
Run Code Online (Sandbox Code Playgroud) 在C中有以下内容:
return (abc(1) || abc(2));
Run Code Online (Sandbox Code Playgroud)
如果abc(1 == 1)返回true将调用abc(2)?