C#新特征

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37813928/article/details/80559494

1.goto语句

    C#语言中可以用来实现跳跃功能的命令主要有:break语句、continue语句和goto语句。

    只要给予一个标记,goto语句就可以将程序跳转到标记所在的位置。

注意:

goto语句不可以跳到for循环中。
goto语句不可以跳到类的外面。
goto语句不可以退出try{}catch()finally{}语句。

2.委托与事件

①可以把委托看成一种特殊的对象类型,委托可以用于调用与委托返回值类型、参数个数、参数类型完全相同的方法。

//委托类型的定义格式
访问修饰符 delegate 返回值类型 委托类型名(参数列表);
//委托类型的定义中不包含函数体
public delegate void MyDelegate(String name);

关于委托定义与调用的实例如下:

public delegate void MyDelegate(string name);

class program
{
    public static void ChineseGreeting(string name)
    {
        Console.WriteLine("早上好,"+name);
    }

    public static void Greeting(string name,MyDelegate wt)
    {
        wt(name);
    }

    static void Main(string[] arges)
    {
        MyDelegate delegate1=new MyDelegate(ChineseGreeting);
        Greeting("张三",delegate1);
    }
}

输出结果:

早上好,张三

还可以将多个方法赋给同一个委托,即将多个方法绑定到同一个委托。当调用这个委托的时候,将依次调用其所绑定的方法。

static void Main(string[] args)
{
    MyDelegate delegate1;
    MyDelegate delegate1=new MyDelegate(ChineseGreeting);
    delegate1+=EnglishGreeting;
    Greeting("张三",delegate1);
    Console.ReadKey();
}

输出结果为:

早上好,张三
Good morning,张三

使用“delegate1-=EnglishGreeting;”可以解除方法到委托对象的绑定。

②事件的定义是基于委托的,也就是说需要先定义一个委托类型,然后在委托类型的定义之上定义一个事件。

事件的定义格式:

访问修饰符 delegate 返回值类型 委托类型名(参数列表);
访问修饰符 event 委托类型名 事件名;
每个事件都有一个调用列表,当事件被引发,调用列表中的方法将依次被执行。

猜你喜欢

转载自blog.csdn.net/qq_37813928/article/details/80559494