Diferencia entre el constructor estático y el constructor de instancias C#

Diferencia entre el constructor estático y el constructor de instancias C#

En este artículo, discutiremos:

Constructor estático:

El constructor estático es un constructor especial que se llama antes de que se cree el primer objeto de la clase. Se utiliza para inicializar cualquier dato estático o para realizar una acción particular que debe realizarse una sola vez.
Se desconoce el momento de ejecución del constructor estático, pero definitivamente es antes de la creación del primer objeto; puede ser en ese momento. de montaje de carga.

Reglas para constructor estático:

  • Una clase solo puede tener un constructor estático
  • El constructor estático no puede tener ningún parámetro
  • El constructor estático no puede tener ningún especificador de acceso
  • Se utiliza para inicializar los miembros de datos estáticos de la clase
  • para cualquier cantidad de creación de objetos, el constructor estático se ejecuta solo una vez
  • El constructor estático se ejecuta cuando se usa la clase
  • El programador no puede invocar explícitamente al constructor estático

Constructor de instancias:

El constructor de instancias se utiliza para inicializar los datos de la instancia. El constructor de instancias se llama cada vez que se crea un objeto de clase.

Similitudes entre el constructor estático y el constructor de instancias:

Los constructores estáticos son como constructores de instancias de las siguientes maneras:
− El nombre del constructor estático debe ser el mismo que el nombre de la clase.
− El constructor no puede devolver un valor.

Diferencia entre Constructor Estático y Constructor de Instancia:

Los constructores estáticos se diferencian de los constructores de instancias en los siguientes aspectos:
− Los constructores estáticos utilizan la palabra clave static en la declaración.
− Solo puede haber un único constructor estático para una clase y no puede tener parámetros.
− Los constructores estáticos no pueden tener modificadores de accesibilidad.

Ejemplo:

 class RandomNumberClass
    {
        private static Random RandomKey; // Private static field
        static RandomNumberClass() // Static constructor
        {
            RandomKey = new Random(); // Initialize RandomKey
        }
        public int GetRandomNumber()
        {
            return RandomKey.Next();
        }
    }
    class Program
    {
        static void Main()
        {
            RandomNumberClass a = new RandomNumberClass();
            RandomNumberClass b = new RandomNumberClass();
            Console.WriteLine("Next Random #: {0}", a.GetRandomNumber());
            Console.WriteLine("Next Random #: {0}", b.GetRandomNumber());
        }
    }

Salida:

Número aleatorio siguiente:1920476323
Número aleatorio siguiente:1895533763

¡¡Gracias por visitarnos!!