- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在编写一个带有类型参数的类 T
接受一个委托(delegate)来转换 T
的实例到一个字符串。我可以将此类委托(delegate)的类型声明为 Func<T, string>
或 Converter<T, string>
.我有什么理由更喜欢其中之一?
最佳答案
除了名称之外,委托(delegate)定义在所有方面都是相同的。因此,这可以提供的唯一真正值(value)是防止不必要的分配试图从输入委托(delegate)类型转换为您选择的类型。简而言之,如果您所有的输入委托(delegate)都是 Func
,选择 Converter
将导致分配开销(反之亦然)
总的来说,这只是一种风格决定。我发现大多数新 API 更喜欢使用 Func
和 Action
而不是其他命名委托(delegate),因此我会使用它。
关于c# - 我应该更喜欢 Func<T, TResult> 还是 Converter<TIn, TOut>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21023017/
我有两个表达式: Expression> Expression> 我想将这些结合起来并获得一个类型为 Expression> 的新表达式,以便它可以在 Entity Framework LINQ 中使
我有一些用例,我将 Funcs 传递给某些方法。我想要做的是使用 Moq 创建一个扩展或帮助器,使我的测试能够轻松创建函数。这个助手的目标是 易于定义具有预期输入和固定输出的函数 如果未调用函数,测试
我对异步处理和 TPL 数据流试验还比较陌生。我的场景:我有一个持续提供输入的 block ,对输入异步执行一个函数,然后返回结果。 (然后将结果传递给保存到数据库的另一个 block 。)该函数可能
为什么会这样: Private [Function] As Func(Of Double, String) = Function(ByRef z As Double) z.ToString 给出以下错
我正在编写一个带有类型参数的类 T接受一个委托(delegate)来转换 T 的实例到一个字符串。我可以将此类委托(delegate)的类型声明为 Func或 Converter .我有什么理由更喜欢
在将一个项目从VS2010迁移到VS2012时,我遇到了以下问题。该项目大量使用反射,为了从接口(interface)获取 MethodInfo,放置了以下代码: Expression>> expre
我是一名优秀的程序员,十分优秀!