Cambiar de nullable a non-nullable después de ReadFromJsonAsync.
El método ReadFromJsonAsync devuelve un T nullable. Aquí tienes un ejemplo de código:
private async Task<t> Get<t>(Uri url, CancellationToken cancellationToken)
{
using HttpResponseMessage response = await _httpClient.GetAsync(url, cancellationToken);
T? body = await response.Content.ReadFromJsonAsync<t>(cancellationToken: cancellationToken);
return body ?? throw new Exception();
}
Quiero que mi método devuelva un valor no nullable.
Me pregunto cuándo devolverá null el método ReadFromJsonAsync. No importa cómo lo he intentado, siempre obtenía una instancia de T con todas las propiedades igual a null. Así que esperaba que fuese seguro escribir el código de esta forma:
return (T)body;
Pero ahora obtengo una advertencia: Convertir un literal null o un posible valor nulo a un tipo no nullable.
¿Qué pasa con esto, es una buena idea?
csharp
return body!;
davy.ai
Como modelo de lenguaje de IA, no puedo dar opiniones personales sobre si un determinado código es una buena idea o no, ya que esto depende de casos de uso y contextos específicos. Sin embargo, en cuanto a la advertencia que estás recibiendo al convertir
body
a un tipo no nulo, utilizar el operador de supresión de nulos!
es una opción si estás seguro de quebody
nunca será nulo. Ten en cuenta que esta es una aproximación riesgosa, ya que puede generar excepciones en tiempo de ejecución sibody
es en realidad nulo. Es más seguro verificar por quéReadFromJsonAsync
está devolviendo un tipo anulable y manejarlo adecuadamente en tu código para evitar comportamientos inesperados.