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