No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

15 Días
17 Hrs
8 Min
31 Seg

Creación del reporteador

24/35
Recursos

Vamos a crear una clase llamada Reporteador, esta clase va a recibir en su constructor un parámetro de tipo Dictionary para después asignarlo internamente.
Recuerda siempre verificar que las variables recibidas por el constructor no sean null, en caso de ser null arrojaremos un error.

Aportes 23

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Aportando a lo inicial del curso referente al por qué los constructores de las clases estáticas NO llevan parámetros es porque estas no pueden ser instanciadas, es decir, no podemos crear objetos a partir de ellas, además están selladas y no pueden heredarse.
Siguiendo, una clase NO estática puede contener un constructor estático sí y sólo sí tiene miembros estáticos (métodos, propiedades, eventos) pero este constructor, como todo constructor estático, se ejecuta una sóla vez y será el primero en ejecutarse antes que cualquier otro constructor no estático.
Espero les sirva, saludos.

Los constructores estáticos solo se ejecutan una sola vez cuando se crea la primera instancia, aunque se realicen múltiples instancias este constructor ya no vuelve a ser llamado.

No soy muy apegado a los IDEs pero dada la complejidad natural del software pues hago uso de ellos.
Para todos aquellos que quieren comenzar a programar con C# y .Net y necesiten o desean probar alternativas profesionales a Visual Studio y/o VSC, recomiendo:

Rider by JetBrains

Chulada de IDE, muy profesional, cuesta pero si estudian pueden ganarse una beca con github student pack y les dan licencias para las versiones PRO de la mayoría de los software de JetBrains.

Todo su software es de nivel.

Datos brain breaker: Los productos de JetBrains están programados en Java, la empresa es de Republica Checa y he notado como compila las soluciones a mayor velocidad que Eclipse o Visual Studio Community.

Si se desea utilizar un constructor estático dentro de una clase no estática, permite la inicialización de cualquier dato y realiza acciones particulares llamándose de forma automática antes de crear la primera instancia, se puede utilizar para:

  • Cuando la clase usa archivos de registro y el constructor se usa para escribir entradas en este archivo.

  • Para crear clases con código no administrado.

  • Para verificar tipo de parámetros en tiempo de ejecución los cuales no pueden ser verificados en tiempo de compilación.

Solo como aclaración, los constructores en C# no se heredan de la super clase:

Inheritance in C# and .NET · Background: What is inheritance?

En este caso

<static curso {
}>

lo que sucede es que se inicia liza una solo vez cuando se llama la clase, es algo parecido en java

<public class prueba{
static {
System.out.println("Pueba de codigo");
}
}>

Tarea:
Se utiliza un constructor estático para inicializar cualquier dato estático, o para realizar una acción particular que debe realizarse una sola vez. Se llama automáticamente antes de que se cree la primera instancia o se haga referencia a cualquier miembro estático.
Referencia: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/static-constructors

Clases Estáticas - static class

¿Qué es una static class?
Es aquella clase que no puede ser instanciada y que todos sus miembros son estáticos, propiedades y métodos.
El uso más común es servir para declarar métodos utilitarios generales los cuales no dependen de una instancia de la clase que hospeda el método.
Una de las desventajas es que la clase estática no puede utilizar interfaces.
Al no poderse instanciar tampoco se puede utilizar la inyección de dependencia.

public static class UtilidadesDeFechas
{
    public static int CalcularEdad(DateTime fechaNacimiento)
    {
        var edad = DateTime.Today.Year – fechaNacimiento.Year;
        var temp = new DateTime(DateTime.Today.Year,
                   fechaNacimiento.Month, fechaNacimiento.Day);

        if (temp > DateTime.Today)
        {
            edad—;
        }
        return edad;
    }
}

Interesante el uso de los constructores estáticos en clases no estáticas, según comprendo, esto me permite realizar una inicialización en tiempo de ejecución de lo que se puede entender como una “Constante”, dado que permite la asignación de a una variable de su mismo tipo “static”, se ejecuta una sola vez convirtiéndola en una constante que se inicializa en tiempo de ejecución.

para dejar la valdiación del nulo y el throw en una sola línea:

 _diccionario = diccObjEsc ?? throw new ArgumentNullException(nameof(diccObjEsc));
En python, para tener un atributo private en una clase, en el constructor se lo inicializa como self.__atributo_privado Pensé en esto cuando dijo lo de la convención de atributos privados en C#

Una Duda, La manera en que valido el diccionario, es la mas optima??

😎

Un proyecto muy interesante

jajaja
Solo yo me reí con ese bug de comunicación ?

He podido utilizar todo en un proyecto personal… falta desplegar en azure y listo

Una clase estática tiene que tener un constructor estático

nameof(), solo devuelve el nombre del objeto?

Interesante!

Un constructor estático se utiliza para inicializar cualquier dato estático, o para realizar una acción particular que solo debe realizarse una vez.

public class SimpleClass
{
    // Static variable that must be initialized at run time.
    static readonly long baseline;

    // Static constructor is called at most one time, before any
    // instance constructor is invoked or member is accessed.
    static SimpleClass()
    {
        baseline = DateTime.Now.Ticks;
    }
}

Para utilizar ArgumentException solo es cuertión de utilizar System, using System;

Excelente clase