msdn 委托实例

来源:互联网 发布:java程序判断闰年 编辑:程序博客网 时间:2024/06/06 08:58

1.面试就爱问委托

目前我在项目中还没用过,刚才试了个小例子,觉得也没啥区别啊,使用委托跟不使用委托。

2.外什么要使用委托,这也是到网上找的:使用委托使程序猿可以将方法引用封装在委托对象中。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法!

代码如下:

声明一个委托:

  public delegate String myMethodDeletegate(int myInt);
显然委托的参数要跟实现方法的参数是一样的;
委托要实现的方法:

  public String myStringMethod(int myInt)            {                if (myInt > 0)                    return ("positive");                if (myInt < 0)                    return ("nagative");                return ("zero");            }
   public static String mySignMethod(int myInt)            {                if (myInt > 0)                    return ("+");                if (myInt < 0)                    return ("-");                return ("");            }
这两个方法都可以用上面的委托;
委托的实现:

 

public static void Main()        {            Console.WriteLine("---------使用委托");            mySampleClass mySC = new mySampleClass();            myMethodDeletegate myD1 = new myMethodDeletegate(mySC.myStringMethod);            myD1 += new myMethodDeletegate(mySampleClass.mySignMethod);            Console.WriteLine(myD1(5));          //  myMethodDeletegate myD2 = new myMethodDeletegate(mySampleClass.mySignMethod);           // Console.WriteLine("{0} is{1};use the sign\"{2}\".", 5, myD1(5), myD2(5));            // Console.WriteLine("{0} is{1};use the sign\"{2}\".", -3, myD1(-3), myD2(-3));            //  Console.WriteLine("{0} is{1};use the sign\"{2}\".", 0, myD1(0), myD2(0));            Console.WriteLine("---------不使用委托");                        mySampleClass mySCNo = new mySampleClass();            Console.WriteLine("{0} is{1};use the sign\"{2}\".", 5, mySCNo.myStringMethod(5), mySampleClass.mySignMethod(5));            Console.ReadLine();        }


0 0
原创粉丝点击