Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

314
Vistas
Cómo resolver la sugerencia 'Usar patrón no nulo...' en la declaración de cambio

En Visual Studio 2019, tratando de usar algunas características más nuevas de C#, específicamente características más nuevas de la declaración de cambio.

Quiero cambiar el tipo de un objeto, y he visto algunas formas de lograrlo, estoy usando este enfoque:

 private string MyFunc (Employee q) .... Type qt = q.GetType(); switch (qt) { case Type _ when qt == typeof(HumanResources): //some code break; case Type _ when qt == typeof(Sales): //some code break; ..... default: break; }; ..... }

Cambié los nombres de las clases y, obviamente, no muestro todo el código. Sin embargo, el tipo de caso tiene las líneas onduladas con la siguiente sugerencia/comentario:

ingrese la descripción de la imagen aquí

Me gustaría implementar la sugerencia, pero no puedo averiguar cómo. Cualquier ayuda será apreciada, gracias.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

No experimento esa advertencia/error/sugerencia en VS2022.

Dicho esto, me gustaría sugerirle que, en su lugar, use la declaración de switch manera más adecuada:

 private string MyFunc(Employee q) { switch (q) { case HumanResources: //some code break; case Sales: //some code break; default: break; }; return null; }

Entonces, en lugar de operar contra los metadatos de Type , está operando contra las instancias mismas. Esto prescinde de cualquier necesidad del operador when y el código me parece mucho más legible.

over 4 years ago · Santiago Trujillo Denunciar

0

No active el tipo de variable, active la variable en sí y use la coincidencia de patrones para seleccionar el caso correcto según el tipo.

 private string MyFunc (Employee q) { switch (q) { case HumanResources hr: // some code break; case Sales s: // some code break; // ... } // ... }

No necesita agregar un nombre de variable ( hr , s ) en el caso, está ahí en caso de que necesite acceder a la variable como ese tipo en particular.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda