What's wrong with the new action (() => someCombobox.Text = "x")
If you want to create a System.Action delegate that has no parameters and does not return a value, just change the code to this by deleting new Action([body]) :
Action newAction = () => someCombobox.Text = "x"; This is because the lambda expression will return a new delegate for you without System.Action parameters. EDIT: as noted by Aliostad , () => someCombobox.Text = "x" will return either a lambda expression or Action , depending on the type of variable you are assigning.
EDIT: as Darin says, if you want him to accept an argument, you need to pass this when creating the lambda expression.
You do not need to pass this as a constructor parameter:
Action a = () => someCombobox.Text = "x"; All you have to do is declare an action and then use the lambda expression to create it.
Alternatively, you can pass the string into action:
Action<string> a = (s) => someCombobox.Text = s; a("your string here");