当我写我的代码
Action(() => someCombobox.Text = "x" )
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
代表'
System.Action<object>
'不带0个参数
为什么?
这个问题关系到这一个.我只想了解为什么会出现这种错误.
您不必将其作为构造函数参数传递:
Action a = () => someCombobox.Text = "x";
Run Code Online (Sandbox Code Playgroud)
您所要做的就是声明一个动作,然后使用lambda表达式来创建它.
或者,您可以将字符串传递给操作:
Action<string> a = (s) => someCombobox.Text = s;
a("your string here");
Run Code Online (Sandbox Code Playgroud)
如果您希望创建一个System.Action
没有参数且不返回值的委托,只需将代码更改为此,删除new Action([body])
:
Action newAction = () => someCombobox.Text = "x";
Run Code Online (Sandbox Code Playgroud)
这是因为lambda表达式将为您返回一个新的无参数System.Action
委托.编辑:如Aliostad所述,() => someCombobox.Text = "x"
将返回lambda表达式或一个Action
,取决于您为其分配的变量的类型.
编辑:正如Darin所说,如果你希望它接受一个参数,那么你需要在创建lambda表达式时传递它.
归档时间: |
|
查看次数: |
809 次 |
最近记录: |