标题:delegate的问题
取消只看楼主
西安郑鑫
Rank: 7Rank: 7Rank: 7
来 自:陕西
等 级:黑侠
帖 子:163
专家分:624
注 册:2013-9-26
结帖率:61.9%
已结贴  问题点数:12 回复次数:2 
delegate的问题
程序代码:
class A
{
    //问题1:我看好多教程里面说"delegate的定义必须放到任何类的外面",但是我看例子有些在类里面声明,而且运行正确
    public delegate void delegateDemo(int number);
    
    static void Main()
    {
        //问题2:2和4为什么可以省略new
        delegateDemo myDelegate = new delegateDemo(A.fun1);//1
//        delegateDemo myDelegate = fun1;//2
//              A a = new A();
//              delegateDemo myDelegate = new delegateDemo(a.fun2);//3
//              delegateDemo myDelegate = a.fun2;//4
    }
        //静态方法
    private static void fun1(int number)
    {
        ...
    }
        //实例方法
        private void fun2(int number)
        {
                ...
        }
}

最近学C#遇到的问题比较多,分少,望见谅
搜索更多相关主题的帖子: number 
2014-01-22 16:45
西安郑鑫
Rank: 7Rank: 7Rank: 7
来 自:陕西
等 级:黑侠
帖 子:163
专家分:624
注 册:2013-9-26
得分:0 
程序代码:
1    public delegate bool delegates(int number);
2    class A
3    {
4        static void Main()
5        {
6            delegates myDelegate = fun1;
7            int number;
8            fun3(number, myDelegate);
9            fun3(number, fun2);
10        }
11        private static bool fun1(int number)
12        {
13        }
14        private static bool fun2(int number)
15        {
16        }
17        private static void fun3(int number, delegates myDelegate)
18        {
19            myDelegate(a);
20            ...
21        }
22    }


fun3里面第二个参数是委托类型,里面用到了委托实例myDelegate,为什么fun2也可以直接传给fun3,而不是为fun2弄个委托变量传给fun3。

Hello World!------鑫花璐放
2014-01-23 13:59
西安郑鑫
Rank: 7Rank: 7Rank: 7
来 自:陕西
等 级:黑侠
帖 子:163
专家分:624
注 册:2013-9-26
得分:0 
大神出来

Hello World!------鑫花璐放
2014-01-23 14:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-426758-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.286330 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved