Consulte "Programación avanzada en C#, cuarta edición".
· Una razón para escribir un constructor estático es que una clase tiene algunos campos o propiedades estáticas que deben inicializarse desde una fuente externa antes de usar la clase por primera vez.
· Los constructores estáticos se ejecutan como máximo una vez, antes de que el código haga referencia a la clase.
· El constructor estático no tiene modificadores de acceso y nunca es llamado por otro código C#, por lo que los modificadores de acceso como público y privado no tienen sentido.
· El constructor estático no puede tomar ningún parámetro y una clase sólo puede tener un constructor estático.
· Los constructores estáticos sólo pueden acceder a miembros estáticos de la clase, no a miembros de instancia.
A continuación se ofrece un ejemplo:
Preferencias de usuario de clase pública
{
público estático de solo lectura Color BackColor;
Preferencias de usuario estáticas()
{
//leer BackColor desde nuestra fuente;
}
//...
}
clasePuntodeEntradaPrincipal
{
vacío estático principal()
{
Console.WriteLine(UserPreferences.BackColor.ToString());
}
}
Tenga en cuenta que los constructores de instancias sin parámetros pueden coexistir de forma segura con los constructores estáticos de una clase. Aunque la lista de parámetros es la misma, no hay contradicción, porque el constructor estático se ejecuta cuando se carga la clase y el constructor de instancia se ejecuta cuando se crea la instancia, por lo que no habrá conflicto en la ejecución del constructor.
clase MiClaseTemp
{
número int estático público = 100;
estática MiClaseTemp()
{
número = 101;
}
}
programa de clase
{
vacío estático principal (cadena [] argumentos)
{
int x = MiClaseTemp.num;
Consola.WriteLine();
}
}
En el programa anterior, si no se agrega el constructor estático, el valor de x es 100. Con el constructor agregado, el valor de x es 101.