c#基础(2) 理解委托和事件

正如 jimmyzhang所说的:较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。

总结:

(1)委托时一个类,它定义了方法的类型,使得可以将方法当做另外一个方法的参数来进行传递,这种将方法动态的付给参数的做法,可以避免在程序中大量使用if---else switch等语句,同时使程序有很好的可扩展性。

(2)使用委托可以将多个方法绑定到同一个委托变量,当调用此变量时,可以依次调用所有绑定的方法。

(3)事件其实没什么不好理解的,声明一个事件不过类似声明了一个封装的委托类型的变量而已。

下面贴个简单的例子,大家体会一下吧:不要认为看过了就懂了,动手亲自去实践一下吧

 public delegate void wenhaodelegate(string name);

    
public class wenhao
    {
        
public event wenhaodelegate delegate1;
        
public void iwenhao(string name)
        {
            
if (delegate1 != null)//如果有方法注册到委托变量
            {
                delegate1(name);
//通过委托调用方法
            }
        }
    }


    
class Program
    {

        
public static void english(string name)
        {
            Console.WriteLine(
"morning:" + name);
        }

        
public static void chinese(string name)
        {
            Console.WriteLine(
"早上好:" + name);
            Console.Read();
        }



        
static void Main(string[] args)
        {
            wenhao mywenhao 
= new wenhao();
            mywenhao.delegate1 
+= english;
            mywenhao.delegate1 
+= chinese;
            mywenhao.iwenhao(
"段英杰");
        }
    }
原文地址:https://www.cnblogs.com/danyingjie/p/1965720.html