I have a generic method that takes a request and provides a response.
public Tres DoSomething<Tres, Treq>(Tres response, Treq request) {/*stuff*/}
But I don't always want a response for my request, and I don't always want to feed request data to get a response. I also don't want to have to copy and paste methods in their entirety to make minor changes. What I want, is to be able to do this:
public Tre DoSomething<Tres>(Tres response) { return DoSomething<Tres, void>(response, null); }
Is this feasible in some manner? It seems that specifically using void doesn't work, but I'm hoping to find something analogous.
You cannot use void
, but you can use object
: it is a little inconvenience because your would-be-void
functions need to return null
, but if it unifies your code, it should be a small price to pay.
This inability to use void
as a return type is at least partially responsible for a split between the Func<...>
and Action<...>
families of generic delegates: had it been possible to return void
, all Action<X,Y,Z>
would become simply Func<X,Y,Z,void>
. Unfortunately, this is not possible.
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