Modificador static en C#

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.

Métodos static

No precisan de una instancia para ser invocados.

class Methods{
 static void Main(string[] args){
  ClassWithStaticMethod.Greet();
 }
}

class ClassWithStaticMethod{
 public static void Greet(){
  Console.WriteLine("Good morning!");
 }
}

En C# no es posible llamar a un método estático desde una instancia.

Los métodos static no pueden usar las características no static de una clase.

class VariableAccess{
 string variable = "hello";
 static void Main(string[] args){
  //variable = "goodbye";
 }
}

Ejercicio

Rehacer la calculadora, pero convirtiendo sus cuatro métodos en static.

Tipos de variables por su posición

class VariablesSegunPosicion{
 String atributo;
 static void Main(string[] args){
  // Es necesario inicializar una variable local para poder usarla
  String variableLocal = null; 
  variableLocal.ToString();
 }
}

Variables static

Van precedidas del modificador static.

El modificador static permite acceder a las variables y métodos aunque no tengamos una instancia del objeto que los contiene.

Al contrario que con las variables no static, no habrá una por cada instancia de una clase, sino una para todas las instancias de la clase.

 class StaticVariable{
 static int staticVariable = 0;
 int notStaticVariable = 0;

 static void Main(string[] args){
  //Incrementamos la variable estática
  StaticVariable.staticVariable++;
  StaticVariable.staticVariable++;

  //Incrementamos la variable no estática
  StaticVariable variableStatic_1 = new StaticVariable();
  StaticVariable variableStatic_2 = new StaticVariable();

  variableStatic_1.notStaticVariable++;
  variableStatic_2.notStaticVariable++;

  //Mostramos resultados

  Console.WriteLine("variableStatic: " + StaticVariable.staticVariable);
  Console.WriteLine("variableNoEstatica1: " + variableStatic_1.notStaticVariable);
  Console.WriteLine("variableNoEstatica2: " + variableStatic_2.notStaticVariable);
 }
}
StaticVariable.cs

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.