我需要一个返回未指定类型或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;
}