Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

313
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!