I have...
Func<string> del2 = new Func<string>(MyMethod);
and I really want to do..
Func<> del2 = new Func<>(MyMethod);
so the return type of the callback method is void. Is this possible using the generic type func?
I have...
Func<string> del2 = new Func<string>(MyMethod);
and I really want to do..
Func<> del2 = new Func<>(MyMethod);
so the return type of the callback method is void. Is this possible using the generic type func?
The Func
family of delegates is for methods that take zero or more parameters and return a value. For methods that take zero or more parameters an don't return a value use one of the Action
delegates. If the method has no parameters, use the non-generic version of Action
:
Action del = MyMethod;
Yes a function returning void (no value) is a Action
public Test()
{
// first approach
Action firstApproach = delegate
{
// do your stuff
};
firstApproach();
//second approach
Action secondApproach = MyMethod;
secondApproach();
}
void MyMethod()
{
// do your stuff
}
hope this helps
In cases where you're 'forced' to use Func<T>
, e.g. in an internal generic API which you want to reuse, you can just define it as new Func<object>(() => { SomeStuff(); return null; });
.
Here is a code example using Lambda expressions instead of Action/Func delegates.
delegate void TestDelegate();
static void Main(string[] args)
{
TestDelegate testDelegate = () => { /*your code*/; };
testDelegate();
}
© 2022 - 2024 — McMap. All rights reserved.
Action
andFunc
in your code? – Nourishment