1. 三元运算符
2. 循环的中断
break - 立即终止循环,继续执行循环后边的第一行代码
continue - 立即终止当前的循环,继续执行下一次循环
goto - 可以跳出循环,到已标记好的位置上
return - 跳出循环及其包含的参数
3. 数据类型转换的两种形式:
隐式转换:从类型A到类型B的转换可以在所有情况下进行,执行转换的规则非常简单,可以让编译器执行转换。
显式转换:从类型A到类型B的转换只能在某些情况下进行,转换的规则比较复杂,应进行某种类型的处理。
4. 关键字checked和unchecked,称为表达式的溢出检查上下文
checked(expression)
unchecked(expression)
5. 锯齿数组:其中每行都有不同的元素个数
6. 委托
委托(delegate)是一种可以把引用存储为函数的类型。委托的声明非常类似于函数,但是不带函数体,且要使用delegate关键字,委托的声明指定了一个返回类型和一个参数列表。
在定义了委托之后,就可以声明该委托类型的变量。接着把这个变量初始化为与委托有相同返回类型和参数列表的引用。之后用这个委托变量调用这个函数,就想该变量是一个函数一样。
有了引用函数的变量之后,还可以执行不能用其他方式完成的操作。例如:可以把委托变量作为参数传递给一个函数,这样,该函数就可以使用委托调用它引用的任何函数,而且在运行之前无需知道调用的是哪个函数。
7. try...catch..finally
可以只有try块和finally块,或者有一个try块和好几个catch块。如果有一个或者多个catch块,finally块就是可选的,否则就是必需的。
try包含抛出异常的代码
catch包含抛出异常时要执行的代码。catch块可以使用<exceptionType>,设置为只响应特定的异常类型,也可以完全省略这个参数,让一般的catch块响应。
finally包含总是会执行的代码。如果没有产生异常,则在try块之后执行。如果处理了异常,就在catch块之后执行。
在try块的代码中出现异常之后,发生的时间依次是:
try块在发生异常的地方中断程序的执行
如果有catch块,就检查该块是否匹配已抛出的异常的类型,如果没有catch块,就执行finally块
如果有catch块,但它与已发生的异常类型不匹配,就检查是否有其他catch块
如果有catch块匹配发送的异常类型,就执行它包含的代码,再执行finally块
如果catch块都不匹配已发生的异常类型,就执行finally块