将委托与消息一起使用

Posted

技术标签:

【中文标题】将委托与消息一起使用【英文标题】:Using a Delegate with Messages 【发布时间】:2010-10-09 21:00:57 【问题描述】:

我正在学习代表,并认为我可能已经找到了一个用途。基本上我所拥有的是一系列字符串属性,它们具有最小值和最大值,如下所示:

string weightInvalid(min as int32, max as int32)

有几条这样的消息,所有消息都有唯一的消息,但都共享相同的最小值和最大值签名。我认为可以在这里使用委托,但我该怎么做呢?看一些代码真的会帮助我了解这个委托的东西。

【问题讨论】:

C# 最好,但我会多种语言:) 【参考方案1】:

在 C# 上:

delegate string weightInvalid(int min, int max);

string MyWeightInvalid(int min, int max)

    return "";


string SomeMethod()


    weightInvalid myFunc = new weightInvalid(MyWeightInvalid);
    return myFunc(0, 1);

【讨论】:

【参考方案2】:

下面是一个简单的控制台应用程序示例,可能会有所帮助...

public delegate string foo(int min, int max);

    class Program
    
        static void Main(string[] args)
        
            CallFoo(foo1);
            CallFoo(foo2);
            CallFoo(foo3);

            Console.WriteLine("Press ENTER to exit...");
            Console.ReadLine();
        

        private static void CallFoo(foo foo)
        
            Console.WriteLine(foo(1, 2));
        

        private static string foo1(int min, int max)
        
            return "foo1";
        

        private static string foo2(int min, int max)
        
            return "foo2";
        

        private static string foo3(int min, int max)
        
            return "foo3";
        

【讨论】:

谢谢。我想我已经设法实现了这一点。我只需要了解这样的事情是如何工作的。但是,我仍然对为什么这会有用感到困惑。这对我想做的事情有实际用途吗?

以上是关于将委托与消息一起使用的主要内容,如果未能解决你的问题,请参考以下文章

将 Func 委托与 Async 方法一起使用

Swinject:如何将委托模式与接口隔离(类与接口)一起使用?

将 Kotlin 属性委托与 by 一起使用时出现 NullPointerException (NPE)

如何将代表与 NSKeyedUnarchiver 一起使用?

将自定义委托与从 QTableView 派生的类一起使用

如何将 SimplSockets 与委托一起用于“hello world”项目?