gpt4 book ai didi

c# - 我可以为元组中的一项返回空值吗?

转载 作者:太空狗 更新时间:2023-10-29 19:59:39 24 4
gpt4 key购买 nike

我有一个返回两个值(HttpResponse 和通用对象)的方法。下面是代码片段。

在某些情况下,我必须将其中一项返回为 null。我尝试了以下条件,但没有用。

internal sealed class OnlineHelper<T>
{
internal static Tuple<T, HttpStatusCode> GetRequest(arg1, arg2...)
{
....
if (webResponse.StatusCode == HttpStatusCode.OK)
{
return Tuple.Create(serializer.Deserialize<T>(response),
webResponse.StatusCode);
}


return Tuple.Create(null, webResponse.StatusCode); // Compiler error
return Tuple.Create(default(T), webResponse.StatusCode);
// ^- Throwing null reference exception.

}
}

最佳答案

是的,你可以。如果你这样做,它会起作用:

var tuple = Tuple.Create<string, int>(null, 42);

您尝试让编译器确定 null 的类型,但它无法做到这一点,因此您必须显式提供泛型类型。

所以,在你的情况下,试试这个:

return Tuple.Create<T, HttpStatusCode>(null, webResponse.StatusCode);

您还需要将通用 class 约束添加到您的方法中,以允许将 null 转换为 T

internal static Tuple<T, HttpStatusCode> GetRequest(arg1, arg2...)
where T : class

关于c# - 我可以为元组中的一项返回空值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24817437/

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