首页 新闻 搜索 专区 学院

一个关于delegate的问题。

0
悬赏园豆:10 [已关闭问题] 关闭于 2012-06-13 09:27

delegate允许你传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m!!!

谁可以给我一个实例。

如果不用delegate, 能不能实现这样的功能,如果能,请给一个实例。

达殿的主页 达殿 | 初学一级 | 园豆:137
提问于:2011-06-11 15:35
< >
分享
所有回答(4)
0

   class a
        {
            public static void m()
            {
            }

        }
        delegate void myDelegate();
        class b
        {
            public void a(myDelegate f)
            {
                f();
            }
        }

angtianqiang | 园豆:110 (初学一级) | 2011-06-11 16:43
0

使用接口即可

小小刀 | 园豆:1991 (小虾三级) | 2011-06-12 12:07
http://www.cnblogs.com/boyldr/archive/2011/05/24/5xjwt.html

刚写完之后 就不能在发了 我就把这个链接给你把!~。你看看很好的!~
支持(0) 反对(0) 随风浪迹天涯 | 园豆:932 (小虾三级) | 2011-06-12 22:29
里面的东西很全,谢谢!!!!“delegate允许你传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m”----这句话其实是我在网上看到的,我的理解是这样的。类B等于拥有了方法m,然后在另一个类c中可直接new一个B,然后再B.m调用。这样的话,能实现吗
支持(0) 反对(0) 达殿 | 园豆:137 (初学一级) | 2011-06-15 16:12
0

匿名方法

dwwwing | 园豆:661 (小虾三级) | 2011-06-12 19:34
“delegate允许你传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m”----这句话其实是我在网上看到的,我的理解是这样的。类B等于拥有了方法m,然后在另一个类c中可直接new一个B,然后再B.m调用。这样的话,能实现吗
支持(0) 反对(0) 达殿 | 园豆:137 (初学一级) | 2011-06-15 16:13
0

我给你写一段我先前对委托的理解吧。这个好像我昨天在博客园里看到的,不知道哪位仁兄的!~凭印象给你。我觉得这对委托有比较好的理解。

public delegate void MyGreet(string str);
class MyTest
{
public void EnglishGreet(string english)
{
Console.WriteLine(
"Hello:"+english);
}
public void ChineseGreet(string chinese)
{
Console.WriteLine(
"我的名字叫:" + chinese);
}
public void Greet(MyGreet my, string str)
{
my(str);
}
}
class Program
{
static void Main(string[] args)
{
MyTest mytest
= new MyTest();
MyGreet mygreet
= new MyGreet(mytest.EnglishGreet);
mygreet
+= mytest.ChineseGreet;
mytest.Greet(mytest.EnglishGreet,
"JIN");
mytest.Greet(mytest.ChineseGreet,
"浪迹天涯");
}
}
随风浪迹天涯 | 园豆:932 (小虾三级) | 2011-06-12 21:57
这只是一个关于委托的很普通的类,没有解决我想解决的问题。
支持(0) 反对(0) 达殿 | 园豆:137 (初学一级) | 2011-06-15 16:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册