我正在编写一个带有类型参数的类 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/