C# Language Constructor estático


Ejemplo

Un constructor estático se llama la primera vez que se inicializa cualquier miembro de un tipo, se llama un miembro de clase estática o un método estático. El constructor estático es seguro para subprocesos. Un constructor estático se usa comúnmente para:

  • Inicialice el estado estático, es decir, el estado que se comparte en diferentes instancias de la misma clase.
  • Crear un singleton

Ejemplo:

class Animal
{
    // * A static constructor is executed only once,
    //   when a class is first accessed.
    // * A static constructor cannot have any access modifiers
    // * A static constructor cannot have any parameters
    static Animal()
    {
        Console.WriteLine("Animal initialized");
    }

    // Instance constructor, this is executed every time the class is created
    public Animal()
    {
        Console.WriteLine("Animal created");
    }

    public static void Yawn()
    {
        Console.WriteLine("Yawn!");
    }
}

var turtle = new Animal();
var giraffe = new Animal();

Salida:

Animal inicializado
Animal creado
Animal creado

Ver demostración

Si la primera llamada es a un método estático, el constructor estático se invoca sin el constructor de instancia. Esto está bien, porque el método estático no puede acceder al estado de la instancia de todos modos.

Animal.Yawn();

Esto dará como resultado:

Animal inicializado
¡Bostezo!

Vea también Excepciones en constructores estáticos y Constructores estáticos genéricos .

Ejemplo de Singleton:

public class SessionManager
{
    public static SessionManager Instance;

    static SessionManager()
    {
        Instance = new SessionManager();
    }
}