如何在方法中返回T类型或null



我需要一个返回未指定类型或null的类的方法。

我需要它来处理API请求,比如,我请求一个文件,比如一个图像和一个其他文件,比如视频,我需要不同的类型。如果找不到图像/视频,我想返回null。

我已经尝试过Nullables,但我可能做得不对。

T? SendRequest<T?>(string pathOnServer)
{
HttpResponseMessage response = SendTheRequest(pathOnServer);
if(response.IsSuccessStatusCode)
return JsonConvert.DeserializeObject<T>(response.Content.ReadAsStringAsync().Result);
else
return null;
}

如果您不想将T约束为结构或类。你可以试试

return default;

如果T是字符串或任何引用类型,则返回null。

这很简单。

您只需要将方法限制为您所说的它应该返回的值。

返回一个具有未指定类型或null的类。

那是T SendReuest<T> (string pathOnServer) where T : class

由于类可以自动为null,这就是所需要的。您只需要限制T就可以成为CLASS,而不是任何东西。

您可以简单地使用where T : class

T SendRequest<T>(string pathOnServer) where T : class
{
HttpResponseMessage response = SendTheRequest(pathOnServer);
if (response.IsSuccessStatusCode)
return JsonConvert.DeserializeObject<T>(response.Content.ReadAsStringAsync().Result);
else
return null;
}

相关内容

  • 没有找到相关文章