第10章 异常处理和委托

82 阅读1分钟

第10章 异常处理和委托

student s1;
try {
    s1.hobby = new string[] { "12", "23" };
    Console.WriteLine(s1.hobby[2]);
}
catch (IndexOutOfRangeException e) {
    Console.WriteLine("越界了!{0}",e);//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; // 移除方法
}