返回以下函数时
public Guid GetUserFilterValue( string filterID )
作为
Func<string, object>
我收到错误返回类型错误。如果我将返回类型更改为 Guid 以外的任何内容,它就会编译。有任何想法吗?
返回以下函数时
public Guid GetUserFilterValue( string filterID )
作为
Func<string, object>
我收到错误返回类型错误。如果我将返回类型更改为 Guid 以外的任何内容,它就会编译。有任何想法吗?
如果返回类型是引用类型,这通常会起作用,因为Func<T, TResult>
对于 T 是协变的;butGuid
是一个值类型,这就是为什么您的方法不是Func<string, object>
.
来自MSDN:
差异仅适用于引用类型;如果为变体类型参数指定值类型,则该类型参数对于生成的构造类型是不变的。
作为一种解决方法,您可以使用 lambda 表达式:
Func<string, object> f = filterId => GetUserFilterValue(filterId);