帮助

内容读取中…

内容读取中…

首页  |  相册  |  共享  |  群组
搜索

正文

委托示例代码(C#) (2009-10-03 20:53)

//TestClassOne.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 委托
{
    class TestClassOne
    {
        public int sum(int value1, int value2)
        {
            return value1 + value2;
        }
        public static int substract(int value1, int value2)
        {
            return value1 - value2;
        }
    }
}

//TestClassTwo.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 委托
{
    class TestClassTwo
    {
        public static int sum(int value1, int value2)
        {
            return value1 + value2;
        }
        public int substract(int value1, int value2)
        {
            return value1 - value2;
        }
    }
}

//Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 委托
{
    //定义委托类型
    public delegate int TestDelegate(int value1,int value2);
    class Program
    {
        //定义委托处理程序
        static int Test(TestDelegate td, int value1, int value2)
        {
            return td(value1, value2);
        }

        static void Main(string[] args)
        {
            //使用委托指向静态方法
            Console.WriteLine("使用委托指向静态方法");
            TestDelegate a = new TestDelegate(TestClassOne.substract);
            Console.WriteLine(a(5, 3));
            a = new TestDelegate(TestClassTwo.sum);
            Console.WriteLine(a(5, 3));
            a = TestClassOne.substract;
            Console.WriteLine(a(5, 3));
            a = TestClassTwo.sum;
            Console.WriteLine(a(5, 3));

            //使用委托指向实例方法
            Console.WriteLine("使用委托指向实例方法");
            a = new TestDelegate(new TestClassOne().sum);
            Console.WriteLine(a(5, 3));
            a = new TestDelegate(new TestClassTwo().substract);
            Console.WriteLine(a(5, 3));
            a = new TestClassOne().sum;
            Console.WriteLine(a(5, 3));
            a = new TestClassTwo().substract;
            Console.WriteLine(a(5, 3));


            //使用委托处理方法间接使用委托
            Console.WriteLine("使用委托处理方法间接使用委托");
            TestDelegate b = new TestDelegate(TestClassOne.substract);
            Console.WriteLine(Test(b, 5, 3));

            //使用匿名方法直接定义委托
            Console.WriteLine("使用匿名方法直接定义委托");
            TestDelegate c = delegate(int value1, int value2)
            {
                return value1 + value2;
            };
            Console.WriteLine(c(5, 3));


            Console.ReadLine();
        }
    }
}

评论 (0) | 阅读 (0)

评论
    内容读取中…
发表评论

你还没有登录,现在登录

共可输入500字,还剩 500

个人档案

内容读取中…

博客公告

内容读取中…

博客日历

内容读取中…

文章分类

内容读取中…

文章存档

    内容读取中…

最新发表

    内容读取中…

最新评论

内容读取中…

给博主留言

内容读取中…

博主好友

内容读取中…

最新访客

内容读取中…

博客统计

    内容读取中…

友情链接

新闻订阅