我一直||在OR表达式中使用(两个管道),包括C#和PHP.偶尔我会看到一个使用的管道:|.这两种用法有什么区别?当使用一个在另一个之上时是否有任何警告或者它们是否可以互换?
orC#中是否有运营商?
我想要做:
if (ActionsLogWriter.Close or ErrorDumpWriter.Close == true)
{
// Do stuff here
}
Run Code Online (Sandbox Code Playgroud)
但我不知道我怎么能这样做.
在C#||中 和&&是逻辑运算符的短路版本 和&分别.
用法示例:
if (String.IsNullOrEmpty(text1) | String.IsNullOrEmpty(text2) | String.IsNullOrEmpty(text3))
{
//...
}
Run Code Online (Sandbox Code Playgroud)
与:
if (String.IsNullOrEmpty(text1) || String.IsNullOrEmpty(text2) || String.IsNullOrEmpty(text3))
{
//...
}
Run Code Online (Sandbox Code Playgroud)
在编码实践方面哪个更好用,为什么?
注:我不知道这个问题是相似的这个问题,但我相信它值得特定语言的讨论.
这里有关于C#中的短路语句的快速问题.使用if语句:
if (MyObject.MyArray.Count == 0 || MyObject.MyArray[0].SomeValue == 0)
{
//....
}
Run Code Online (Sandbox Code Playgroud)
是否保证评估将在"MyArray.Count"部分之后停止,前提是该部分为真?否则我将在第二部分得到一个空例外.