C# 'or' operator?
C_中是否有
我想做:
1 2 3 4 | if (ActionsLogWriter.Close or ErrorDumpWriter.Close == true) { // Do stuff here } |
但我不知道我该怎么做。
C支持两个Boolean
区别在于
当右侧的情况涉及处理或产生副作用时,这一点非常重要。(例如,如果您的
同样值得一提的是,在c中,or运算符是短路的。在您的示例中,Close似乎是一个属性,但如果它是一个方法,则值得注意的是:
1 | if (ActionsLogWriter.Close() || ErrorDumpWriter.Close()) |
与
1 | if (ErrorDumpWriter.Close() || ActionsLogWriter.Close()) |
在C中,如果第一个表达式返回true,则不会对第二个表达式进行计算。请注意这一点。它实际上在大多数时候都对你有利。
1 2 3 | if (ActionsLogWriter.Close || ErrorDumpWriter.Close == true) { // Do stuff here } |
或者是c中的
你可以看看这个。
单个""运算符将计算表达式的两边。
1 2 3 4 | if (ActionsLogWriter.Close | ErrorDumpWriter.Close == true) { // Do stuff here } |
双运算符""仅在表达式返回true时计算左侧。
1 2 3 4 | if (ActionsLogWriter.Close || ErrorDumpWriter.Close == true) { // Do stuff here } |
C语言与C++有许多相似之处,但它们仍然是两种语言之间的差异;
就像C和C++一样,布尔或运算符是
1 2 3 4 | if (ActionsLogWriter.Close || ErrorDumpWriter.Close == true) { // Do stuff here } |