初始化相同数据类型的多个委托

时间:2017-05-15 09:40:24

标签: c#

我正在使用Windows窗体并使用线程安全概念来设置主线程控件的值,这里我有两个委托,一个用于没有参数,另一个用于传递参数但我发现不可能这样做,因为它说

  

表单已包含StringArgReturningVoidDelegate

的定义

委托声明

    delegate string StringArgReturningVoidDelegate();

    delegate void StringArgReturningVoidDelegate(string text);

2 个答案:

答案 0 :(得分:3)

委托必须在其封闭的类型/命名空间中唯一地命名。我告诉你第一个应该是NoArgsReturningStringDelegate,但是:只使用Func<string>Action<string>而不是声明你自己的委托类型会更容易......

答案 1 :(得分:1)

不。你不能让代表超载。

关于原因的一些指示: C# - How can I "overload" a delegate?

对此有一些解决方法,你可以在这个答案中找到: https://stackoverflow.com/a/41574140/4054186