C# | Clase estática

En C#, se permite crear una clase estática mediante el uso 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 puede heredar una clase estática de otra clase .

Sintaxis: 

static class Class_Name
{

      // static data members 
     // static method
}

En C#, la clase estática contiene dos tipos de miembros estáticos de la siguiente manera:

  • Miembros de datos estáticos: como la clase estática siempre contiene miembros de datos estáticos, los miembros de datos estáticos se declaran usando la palabra clave estática y se accede directamente a ellos usando el nombre de la clase. La memoria de los miembros de datos estáticos se asigna individualmente sin ninguna relación con el objeto.
    Sintaxis: 
static class Class_name 
{
    public static nameofdatamember;
}
  • Métodos estáticos: como la clase estática siempre contiene métodos estáticos, los métodos estáticos se declaran utilizando la palabra clave estática. Estos métodos solo acceden a miembros de datos estáticos, no pueden acceder a miembros de datos no estáticos. 
    Sintaxis: 
static class Class_name {

    public static nameofmethod()
    {
         // code 
     }
}

Ejemplo 1: 

C#

// C# program to illustrate the
// concept of static class
using System;
 
namespace ExampleOfStaticClass {
 
// Creating static class
// Using static keyword
static class Author {
 
    // Static data members of Author
    public static string A_name = "Ankita";
    public static string L_name = "CSharp";
    public static int T_no = 84;
 
    // Static method of Author
    public static void details()
    {
        Console.WriteLine("The details of Author is:");
    }
}
 
// Driver Class
public class GFG {
 
    // Main Method
    static public void Main()
    {
 
        // Calling static method of Author
        Author.details();
 
        // Accessing the static data members of Author
        Console.WriteLine("Author name : {0} ", Author.A_name);
        Console.WriteLine("Language : {0} ", Author.L_name);
        Console.WriteLine("Total number of articles : {0} ",
                                              Author.T_no);
    }
}
}
Producción: 

The details of Author is:
Author name : Ankita 
Language : CSharp 
Total number of articles : 84

 

Ejemplo 2:

C#

// C# program to demonstrate
// the concept of static class
using System;
 
 
// declaring a static class
public static class GFG {
     
    // declaring static Method
    static void display()
    {
        Console.WriteLine("Static Method of class GFG");
    }
     
}
 
// trying to inherit the class GFG
// it will give error as static
// class can't be inherited
class GFG2 : GFG {
     
    public static void Main(String[] args) {
         
         
    }
}

Error de tiempo de compilación:

prog.cs(20,7): error CS0709: `GFG2′: no se puede derivar de la clase estática `GFG’

Explicación: En el ejemplo anterior, tenemos una clase estática denominada Autor mediante el uso de la palabra clave estática. La clase Author contiene miembros de datos estáticos denominados A_name , L_name y T_no , y un método estático denominado details() . El método de una clase estática simplemente se llama usando su nombre de clase como Author.details(); . Como sabemos que la clase estática no consiste en un objeto, se accede al miembro de datos de la clase Author por su nombre de clase, como Author.A_name , Author.L_name y Author.T_no .  

Diferencia entre clase estática y no estática 

Clase estática Clase no estática
La clase estática se define usando la palabra clave estática. La clase no estática no se define mediante el uso de la palabra clave estática.
En la clase estática, no se le permite crear objetos. En la clase no estática, puede crear objetos usando una nueva palabra clave.
Se puede acceder directamente a los miembros de datos de la clase estática por su nombre de clase. No se accede directamente a los miembros de datos de la clase no estática por su nombre de clase.
La clase estática siempre contiene miembros estáticos. La clase no estática puede contener métodos estáticos y no estáticos.
La clase estática no contiene un constructor de instancias. La clase no estática contiene un constructor de instancias.
La clase estática no puede heredar de otra clase. La clase no estática se puede heredar de otra clase.

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 *