c# 委托理解

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

namespace 委托深度理解
{
    /// <summary>
    /// 比如孩子想买个东西,但是她很懒,所以就想让爸爸妈妈帮她买,
    /// 这就是委托。委托是类型安全的,和指针类似但是直接操作内存是很危险
    /// 的。
    /// </summary>
    /// <param name="something"></param>
    public delegate void BuySomething(string something);
    class Program
    {
       // public event SaySomething come;
        static void Main(string[] args)
        {
            BuySomething Father = new BuySomething(FatherBuy);//将委托和方法关联起来
            BuySomething Mother = new BuySomething(MotherBuy);//将委托和方法关联起来
            Father("冰激凌");
            Mother.Invoke("喜羊羊书包");
            Func<string, string> convertMethod = UppercaseString;//另一种实现委托的方法
            //http://msdn.microsoft.com/zh-cn/library/bb549151.aspx#Y0
            Console.WriteLine("另一种实现委托的方法:"+convertMethod("abcdefg"));
            // Func<T, TResult> 委托与匿名方法一起使用。
            Func<string, string> convertToLower = delegate(string s) { return s.ToLower(); };//后面有 ; 注意
            Console.WriteLine("匿名方法实现委托,将ABCDEFG转换为小写:" + convertToLower("ABCDEFG"));
            //通过使用匿名方法,由于您不必创建单独的方法,因此减少了实例化委托所需的编码系统开销。
            Func<string, string> convert = s => s.ToLower();
            Console.WriteLine("Lambda 表达式实现委托,将ABCDEFG转换为小写:" + convertToLower("ABCDEFG"));
            // 这样能以参数形式传递 lambda 表达式,而不用显式将其分配给委托。
            Console.ReadLine();
        }
        public static void MotherBuy(string st)
        {
            Console.WriteLine("委托妈妈买" + st);       //买东西就是一个方法
        }
        public static void FatherBuy(string st)
        {
            Console.WriteLine("委托爸爸买" + st);
        }
        public static string UppercaseString(string st)
        {
            return st.ToUpper();
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值