A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

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? Crea una cuenta o inicia sesi贸n.

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.

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.

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.

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.

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");
}
}>

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

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

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

 _diccionario = diccObjEsc ?? throw new ArgumentNullException(nameof(diccObjEsc));

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

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#

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 鈥淐onstante鈥, dado que permite la asignaci贸n de a una variable de su mismo tipo 鈥渟tatic鈥, se ejecuta una sola vez convirti茅ndola en una constante que se inicializa en tiempo de ejecuci贸n.

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;
    }
}

馃槑

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;

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

Excelente clase