开发者

Is it bad practice to use Action and Func all the time instead of making corresponding delegates?

A lot of time when creating simple events in my program that other classes can subscribe to instead of making a delegate and creating an event from the delegate I just create the event with either Action or Func to avoid having to cr开发者_开发技巧eate the delegate.

Is there any downsides to doing this?


Not really, the only downside I can think of is that if you have a logical intention (beyond the parameters and return values expected) that you want the user to satisfy that may get lost using the generic delegates.

For example:

   public delegate void ClearAllValuesDelegate(MyClass X);

   // ...

   ClearAllValuesDelegate myDelegate;

vs:

   Action<MyClass> myDelegate;

In the former, it's clear the intention is that the action should clear all the values in the reference (though there's no way to enforce this of course). Whereas Action<> just tells you what it takes and not much else. Like I said, this is just a logical difference.

But really there's no big downside that I'm aware of. Most of the time when we use Func<> and Action<> we are simply asking the caller to give us a target that satisfies the inputs/outputs only.


The main difference to me is the difference between:

Is it bad practice to use Action and Func all the time instead of making corresponding delegates?

And:

Is it bad practice to use Action and Func all the time instead of making corresponding delegates?

Obviously, there is at least some value in having the parameter named.


imho it's a matter of preference, to the CLR it's the same thing

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜