我正在使用Windows窗体并使用线程安全概念来设置主线程控件的值,这里我有两个委托,一个用于没有参数,另一个用于传递参数但我发现不可能这样做,因为它说
表单已包含StringArgReturningVoidDelegate
的定义
委托声明
delegate string StringArgReturningVoidDelegate();
delegate void StringArgReturningVoidDelegate(string text);
答案 0 :(得分:3)
委托必须在其封闭的类型/命名空间中唯一地命名。我告诉你第一个应该是NoArgsReturningStringDelegate
,但是:只使用Func<string>
和Action<string>
而不是声明你自己的委托类型会更容易......
答案 1 :(得分:1)
不。你不能让代表超载。
关于原因的一些指示: C# - How can I "overload" a delegate?
对此有一些解决方法,你可以在这个答案中找到: https://stackoverflow.com/a/41574140/4054186