该if语句用于控制程序的流程。一条if语句根据Boolean表达式的值标识要运行的语句。
对于单个语句,braces{}是可选的,但建议使用。
int a = 4; if(a % 2 == 0) { Console.WriteLine("a contains an even number"); } // output: "a contains an even number"
该if还可以有一个else条款,将在案件条件的计算结果来执行错误:
int a = 5; if(a % 2 == 0) { Console.WriteLine("a contains an even number"); } else { Console.WriteLine("a contains an odd number"); } // output: "a contains an odd number"
该if...else if结构,可以指定多个条件:
int a = 9; if(a % 2 == 0) { Console.WriteLine("a contains an even number"); } else if(a % 3 == 0) { Console.WriteLine("a contains an odd number that is a multiple of 3"); } else { Console.WriteLine("a contains an odd number"); } // output: "a contains an odd number that is a multiple of 3"
C#布尔表达式使用短路评估。在评估条件可能会有副作用的情况下,这一点很重要:
if (someBooleanMethodWithSideEffects() && someOtherBooleanMethodWithSideEffects()) { //... }
无法保证someOtherBooleanMethodWithSideEffects将实际运行。
在较早的条件下确保对以后的条件进行“安全”评估的情况下,这一点也很重要。例如:
if (someCollection != null &&someCollection.Count> 0) { // .. }
在这种情况下,顺序非常重要,因为如果我们颠倒顺序:
if (someCollection.Count > 0 && someCollection != null) {
它将抛出一个NullReferenceExceptionif someCollectionis null。