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