I have method in c# with some parameters:
public static void DeleteSingleItemInDataGrid
(DataGrid dataGrid, String IDcolumnName, Func<int> afterCompletionMethod_ToRun)
I want to change third parameter type to Func< void >
but I can't. how can I do it?
In other words my question is how can pass a method(or function with void result) as a method parameter?
A delegate referencing a method that "returns" void
is called an Action
in .NET lingo, and that's what the delegate type is called as well:
So your method signature would be this:
public static void DeleteSingleItemInDataGrid
(DataGrid dataGrid, String IDcolumnName, Action afterCompletionMethod_ToRun)
If you need to pass the int
parameter to it, and not return int
, it would be this:
public static void DeleteSingleItemInDataGrid
(DataGrid dataGrid, String IDcolumnName, Action<int> afterCompletionMethod_ToRun)
This accepts a method taking an int
parameter, that does not return anything (aka "returning" void
).
This also means that you cannot create a generic method that accepts both methods returning something and methods not returning something with just one method, but need to create an overload using Action
, and one using Func<T>
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With