Palabra clave estática en C# – Part 1

static es un modificador en C# que se aplica a lo siguiente: 

También es aplicable a propiedades , eventos y operadores . Para crear un miembro estático (clase, variable, métodos, constructor), precede su declaración con la palabra clave estática . Cuando un miembro se declara estático, se puede acceder directamente con el nombre de su clase.

Clase estática

Una clase estática se declara con la ayuda de la palabra clave estática . Una clase estática solo puede contener miembros de datos estáticos, métodos estáticos y un constructor estático. No está permitido crear objetos de la clase estática. Las clases estáticas están selladas , lo que significa que no se puede heredar una clase estática de otra clase.

Ejemplo: 

C#

// C# program to illustrate the
// concept of a static class
using System;
 
// Creating static class
// Using static keyword
static class Tutorial {
 
    // Static data members of Tutorial
    public static string Topic = "Static class";
}
 
// Driver Class
public class GFG {
 
    // Main Method
    static public void Main()
    {
 
        // Accessing the static data members of Tutorial
        Console.WriteLine("Topic name is : {0} ", Tutorial.Topic);
    }
}

Producción: 

Topic name is : Static class 

variable estática

Una variable estática se declara con la ayuda de la palabra clave estática. Cuando una variable se declara como estática, se crea una sola copia de la variable y se comparte entre todos los objetos en el nivel de clase. A las variables estáticas se accede con el nombre de la clase, no requieren de ningún objeto para acceder.

Ejemplo: 

C#

// C# program to illustrate the
// concept of static variable
using System;
 
class Vehicle {
 
    // Creating static variable
    // Using static keyword
    public static string Model_color = "Black";
}
 
// Driver Class
public class GFG {
 
    // Main Method
    static public void Main()
    {
 
        // Accessing the static variable
        // using its class name
        Console.WriteLine("Color of XY model is  : {0} ",
                                    Vehicle.Model_color);
    }
}

Producción: 

Color of XY model is  : Black 

Método estático

Un método estático se declara con la ayuda de la palabra clave estática. A los métodos estáticos se accede con el nombre de la clase. Un método estático puede acceder a campos estáticos y no estáticos, el método estático accede directamente a los campos estáticos sin nombre de clase, mientras que los campos no estáticos requieren objetos.

Ejemplo: 

C#

// C# program to illustrate the
// concept of static method
using System;
 
class Nparks {
 
    static public int t = 104;
 
    // Creating static method
    // Using static keyword
    public static void total()
    {
        Console.WriteLine("Total number of national parks"+
                           " present in India is :{0}", t);
    }
}
 
// Driver Class
public class GFG {
 
    // Main Method
    static public void Main()
    {
 
        // Accessing the static method
        // using its class name
        Nparks.total();
    }
}

Producción: 

Total number of national parks present in India is :104

Constructor estático

Un constructor estático se declara con la ayuda de la palabra clave estática. Static Constructor debe invocarse solo una vez en la clase y ha sido invocado durante la creación de la primera referencia a un miembro estático en la clase. Un constructor estático son campos o datos estáticos inicializados de la clase y para ser ejecutados una sola vez.

Puntos para recordar:  

  • No se puede llamar directamente.
  • Cuando se está ejecutando, el usuario no tiene control.
  • No requiere modificadores de acceso ni ningún parámetro.
  • Se llama automáticamente para inicializar la clase antes de que se cree la primera instancia.

Ejemplo: 

C#

// C# Program to illustrate calling
// a Static constructor
using System;
 
class G1 {
 
    // It is invoked before the first
    // instance constructor is run.
    static G1()
    {
 
        // The following statement produces
        // the first line of output,
        // and the line occurs only once.
        Console.WriteLine("Example of Static Constructor");
    }
 
    // Instance constructor.
    public G1(int j)
    {
        Console.WriteLine("Instance Constructor " + j);
    }
 
    // Instance method.
    public string g1_detail(string name, string branch)
    {
        return "Name: " + name + " Branch: " + branch;
    }
 
    // Main Method
    public static void Main()
    {
 
        // Here Both Static and instance
        // constructors are invoked for
        // first instance
        G1 obj = new G1(1);
 
        Console.WriteLine(obj.g1_detail("Sunil", "CSE"));
 
        // Here only instance constructor
        // will be invoked
        G1 ob = new G1(2);
 
        Console.WriteLine(ob.g1_detail("Sweta", "ECE"));
    }
}

Producción: 

Example of Static Constructor
Instance Constructor 1
Name: Sunil Branch: CSE
Instance Constructor 2
Name: Sweta Branch: ECE

Limitación del uso de palabras clave estáticas:  

  • La palabra clave estática no puede ser utilizada por indexadores , finalizadores o tipos que no sean clases.
  • No se hace referencia a un miembro estático a través de una instancia.
  • En C#, no está permitido usar esto para hacer referencia a métodos estáticos o accesos a propiedades.
  • En C#, si se usa la palabra clave estática con la clase, la clase estática siempre contiene miembros estáticos.

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *