PaR*_*RsH 7 c# asp.net null tuples
我有一个返回两个值的方法(HttpResponse和Generic对象).以下是代码段.
在某些情况下,我必须将其中一个项返回为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.
}
}
Run Code Online (Sandbox Code Playgroud)
Eni*_*ity 14
是的你可以.如果你这样做它有效:
var tuple = Tuple.Create<string, int>(null, 42);
Run Code Online (Sandbox Code Playgroud)
你试图让编译器确定它的类型null,它不能这样做,所以你必须明确提供泛型类型.
所以,在你的情况下,试试这个:
return Tuple.Create<T, HttpStatusCode>(null, webResponse.StatusCode);
Run Code Online (Sandbox Code Playgroud)
您还需要将通用class约束添加到您的方法以允许null转换为T.
internal static Tuple<T, HttpStatusCode> GetRequest(arg1, arg2...)
where T : class
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6096 次 |
| 最近记录: |