c# - 我应该更喜欢 Func<T, TResult> 还是 Converter<TIn, TOut>?

标签 c# .net delegates

我正在编写一个带有类型参数的类 T接受一个委托(delegate)来转换 T 的实例到一个字符串。我可以将此类委托(delegate)的类型声明为 Func<T, string>Converter<T, string> .我有什么理由更喜欢其中之一?

最佳答案

除了名称之外,委托(delegate)定义在所有方面都是相同的。因此,这可以提供的唯一真正值(value)是防止不必要的分配试图从输入委托(delegate)类型转换为您选择的类型。简而言之,如果您所有的输入委托(delegate)都是 Func,选择 Converter 将导致分配开销(反之亦然)

总的来说,这只是一种风格决定。我发现大多数新 API 更喜欢使用 FuncAction 而不是其他命名委托(delegate),因此我会使用它。

关于c# - 我应该更喜欢 Func<T, TResult> 还是 Converter<TIn, TOut>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21023017/

相关文章:

c# - 对于来自 URL 的大文件,在 ZipArchive 中抛出“System.OutOfMemoryException”

c# - 从派生派生类调用父类方法

c# - 默认LifetimeManager为单例管理器(ContainerControlledLifetimeManager)?

c# - Linq 填充类的值

ios - 检查哪个委托(delegate)插入模态视图 Controller 的优雅解决方案是什么?

c# - 创建 Messenger 服务

c# - 通过多个嵌套异步调用调试异常

c# - IIS 混合匿名和 Windows 身份验证

c# - 下一行继续代码

c# - 将匿名 lambda 转换为强类型委托(delegate)会禁用编译器缓存吗?