que acabo de hacer un pequeño experimento:C# Las variables estáticas - alcance y persistencia
public abstract class MyClass
{
private static int myInt = 0;
public static int Foo()
{
return myInt;
}
public static int Foo(int n)
{
myInt = n;
return bar();
}
private static int bar()
{
return myInt;
}
}
y luego me encontré:
MessageBox.Show(MyClass.Foo().ToString());
MessageBox.Show(MyClass.Foo(3).ToString());
MessageBox.Show(MyClass.Foo().ToString());
MessageBox.Show(MyClass.Foo(10).ToString());
MessageBox.Show(MyClass.Foo().ToString());
Los resultados que espera fueron de 0, 3, 0, 10, 0 .
para mi sorpresa, llegué 0, 3, 3, 10, 10.
¿Cuánto tiempo persisten estos cambios para? La duración de la ejecución del programa? La duración de la función que llama al método estático?
Una variable estática es compartida por todas las instancias de la clase. No solo visible a través de los métodos. –