第10章 异常处理和委托
student s1;
try {
s1.hobby = new string[] { "12", "23" };
Console.WriteLine(s1.hobby[2]);
}
catch (IndexOutOfRangeException e) {
Console.WriteLine("越界了!{0}",e);
}
finally
{
Console.WriteLine("这里不管有没有异常都会执行!");
}
//定义一个委托类型
delegate void Mydel(int x)
static void printN(int x) {
Console.WriteLine(x)
}
static void Main(string[] args)
{
//声明委托变量
Mydel del1, del2
//初始化委托变量1(new 运算符)
del1 = new Mydel(printN)
//初始化委托变量2(使用快捷语法)
del2 = ceshi.printN
//赋值委托,委托是引用类型,可以被多次赋值
del1 = ceshi.printN
//组合委托,委托是恒定的,操作数委托创建后不会被改变。委托组合拷贝的是操作数的副本。
Mydel del3
del3 = del1 + del2
/*
可以使用+=运算符,为委托新增方法。
同样可以使用-=运算符,为委托移除方法。
*/
Mydel del = ceshi.printN
del += ceshi.printN
del -= ceshi.printN
}