马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

求助 c#委托问题

  [复制链接]
查看5277 | 回复8 | 2013-3-31 14:55:52 | 显示全部楼层 |阅读模式
刚开始学习c#  帮忙看看下面一段代码哪里错了
using System;
delegate void EatDelegate(string food);
class myDelegate
{
    static void zsEat(string food)
    {
        Console.WriteLine("张三吃"+food);
    }
    static void lsEat(string food)
    {
        Console.WriteLine("李四吃"+food );
    }
    static void wwEat(string food)
    {
        Console.WriteLine("王五吃"+food);
    }


    static void Main()
    {
        EatDelegate zs = new EatDelegate(zsEat);
        EatDelegate ls = new EatDelegate(lsEat );
        EatDelegate ww = new EatDelegate(wwEat );
        EatDelegate eatChain;
        eatChain = zs + ls + ww;
        eatChain =("西瓜");
        Console.ReadKey();
    }
}


谢谢了!!!!!!!
ibcadmin | 2013-3-31 15:25:50 | 显示全部楼层
main 方法中 改为

EatDelegate e1 = zsEat;
            EatDelegate e2 = lsEat;
            EatDelegate e3 = wwEat;
            e1("西瓜");
            e2("西瓜");
            e3("西瓜");
            Console.Read();
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
ibcadmin | 2013-3-31 15:27:29 | 显示全部楼层
也有更简单的方法

在添加一个方法

static void run(string food , EatDelegate e)
        {
            e(food);
        }

然后MAIN方法改为

run("西瓜",zsEat);
            Console.Read();
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
DC忍者猫 | 2013-3-31 15:54:43 | 显示全部楼层
ibcadmin 发表于 2013-3-31 15:25
main 方法中 改为

EatDelegate e1 = zsEat;

想通过委托链方法  直接输入一次(“西瓜”)同时都调用了上面的三个函数   但是报错  说是无法将string 隐式转换为EatDelegate  不明白为什么
DC忍者猫 | 2013-3-31 15:56:19 | 显示全部楼层
ibcadmin 发表于 2013-3-31 15:27
也有更简单的方法

在添加一个方法

谢谢                您的回复
ibcadmin | 2013-3-31 19:44:01 来自手机 | 显示全部楼层
那就用第一种方法来自: Android客户端
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
DC忍者猫 | 2013-4-2 09:18:36 | 显示全部楼层
把等于号去掉就可以了   谢谢大家
chao2332601 | 2013-6-16 00:33:03 | 显示全部楼层
谢谢分享!!!
chao2332601 | 2013-6-16 04:43:24 | 显示全部楼层
谢谢分享!!!
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则