gpt4 book ai didi

c# - 委托(delegate)返回类型对象不接受函数返回 Guid

转载 作者:行者123 更新时间:2023-11-30 16:22:19 25 4
gpt4 key购买 nike

返回以下函数时

public Guid GetUserFilterValue( string filterID )

作为

Func<string, object> 

我得到的错误是它有错误的返回类型。如果我将返回类型更改为 Guid 以外的任何类型,它就会编译。有什么想法吗?

最佳答案

如果返回类型是引用类型,这通常会起作用,因为 Func<T, TResult>对 T 是协变的;但是Guid是值类型,这就是为什么您的方法不是 Func<string, object> 的有效候选者的原因.

来自 MSDN :

Variance applies only to reference types; if you specify a value type for a variant type parameter, that type parameter is invariant for the resulting constructed type.

作为解决方法,您可以使用 lambda 表达式:

Func<string, object> f = filterId => GetUserFilterValue(filterId);

关于c# - 委托(delegate)返回类型对象不接受函数返回 Guid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12513994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com