文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>面向对象---委托---

面向对象---委托---

时间:2011-03-26  来源:hfliyi

委托主要用于.NET FRAMEWORK中的事件。

委托性质: (1):类似C/C++中的指针;(2):是C#中的一种引用数据类型;(3):是定义了方法返回类型和参数组成的数据类型。所以说委托和类的级别一样的。

委托的作用:委托包含对方法的引用,是一种安全的封装方法的类型。通过调用委托可以间接的调用方法。从而实现对方法的封装。符合委托返回类型和参数组成的任何方法都可以赋予委托。

一旦为委托分配了方法,委托将与方法具有共同的行为。

public delegate void DelegateMethod(int a , int b);//定义委托 返回值为空,拥有两个整形的参数
class Test
{
static void Main(string[] args)
{
DelegateMethod m =new DelegateMethod(Method1);//实例化委托
m(2,3);//调用委托

}
static void Method1(int a , int b)
{
Console.WriteLine("{0} + {1} = {2}",a , b , a+b);
}
}

//多播委托

注:委托的返回值是空,只有这样才能够体现多播委托的作用

namespace Test
{
    public delegate void DelegateMethod(int a ,int b);
    class Program
    {
        static void Main(string[] args)
        {
            DelegateMethod m = new DelegateMethod(Method1);
       

            m += new DelegateMethod(Method2);
            m += new DelegateMethod(Method1);
            m(2, 3);
           
        }
        static void Method1(int a, int b)
        {
   
            Console.WriteLine("{0}+{1}={2}",a,  b,a+b);
        }
        static void Method2(int a, int b)
        {
       
            Console.WriteLine("{0} * {1} = {2}", a, b, a * b);
        }
        static void Method3()
        {
            Console.WriteLine("Hello");
        }
        static void Method4()
        {
            Console.WriteLine("World");
        }
    }
}

  如果是多播委托的情况下,委托有返回值,那么它的结果是最后被指定的方法的结果。

namespace Test
{
    public delegate int DelegateMethod(int a, int b);
    class Program
    {
        static void Main(string[] args)
        {
            DelegateMethod m = new DelegateMethod(Method1);


            m += new DelegateMethod(Method2);
            m += new DelegateMethod(Method1);
            Console.WriteLine(m(2, 3));

        }
        static int Method1(int a, int b)
        {
            return a + b;
        }
        static int Method2(int a, int b)
        {
            return a * b;
        }
    
    }
}

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载