Con Constructor primario:
Es importante tener en cuenta que los parámetros de clase son no campos de la clase. El siguiente código no compilará si se utiliza en SimpleClass, ya que foo y bar no están disponibles en "this".
El uso de un Constructor Primario puede mejorar significativamente la legibilidad de su código, ya que elimina gran parte de la infraestructura de código alrededor de los constructores de clase. Por ejemplo, compara cuánto más fácil de leer es SimpleClass, con la clase funcionalmente equivalente que no utiliza un Constructor Primario.
Sin Constructor Primario:
Los Primary Constructors también pueden ser usados en tipos "struct" y "record". Esto puede facilitar la creación y mantenimiento de DTO's... Por ejemplo.
Sugerimos tener en cuenta lo siguiente cuando se utiliza un Primary Constructor:
Los parámetros de clase no están directamente disponibles para las clases hijas. Así, el siguiente código no compilará, ya que bar y foo no están disponibles para la clase hija, SimpleChildClass.
Si desea anular el constructor, los parámetros de clase deben incluirse en deben incluirse. Para incluir los parámetros de la clase, debe utilizar this() en el constructor anulado. Si su clase tiene múltiples constructores anulados, utilizar un constructor primario puede no ser la mejor solución.
Los parámetros de clase no campos de sólo lectura. Si está utilizando estos parámetros directamente con inyección de dependencia, es posible causar efectos secundarios que causarán errores en tiempo de ejecución. Por ejemplo:
Si FooUp() es llamado antes que FooBar(), entonces una NullReferenceException será lanzada por FooBar(). Es mejor utilizar un campo de sólo lectura junto con el Constructor Primario.
Esta clase no compilará porque _logger es de sólo lectura y FooUp no puede asignar un valor a _logger, evitando así que FooBar lance una NullReferenceException. Los constructores primarios son una buena forma de azúcar sintáctico que se ha añadido a C#12, que tiene la promesa de hacer sus clases un poco más fáciles de leer y ahorrar algo de código constructor repetitivo. No son adecuados para todas las situaciones, sin embargo, y se debe tener cuidado al utilizar estos parámetros en su código. A los desarrolladores de Improving les apasiona lo que hacen. Son extremadamente versados en todas las áreas de codificación y desarrollo de aplicaciones. ¿Cuándo fue la última vez que actualizaste tus aplicaciones? En este blog podemos ver que los cambios se producen con rapidez, lo que significa que las aplicaciones pueden quedar desfasadas rápidamente. Adelantarse a estos cambios es esencial para mantener un rendimiento adecuado de sus aplicaciones. Si sus aplicaciones no están actualizadas rellene este formulario y alguien se pondrá en contacto con usted.