Yahoo Answers is shutting down on May 4th, 2021 (Eastern Time) and beginning April 20th, 2021 (Eastern Time) the Yahoo Answers website will be in read-only mode. There will be no changes to other Yahoo properties or services, or your Yahoo account. You can find more information about the Yahoo Answers shutdown and how to download your data on this help page.

¿Static en VB y equivalencia en C#?

Ya sé que a lo mejor esto no es factible, pero bueno, no pierdo nada con preguntar. Suponiendo el método siguiente en Visual Basic:

Private Sub AlgunMetodo()

Static variableEstatica As Integer = 5

End Sub

... ¿Existe alguna equivalencia al Static de Visual Basic en C#? OJO, el static de C# equivale al Shared de VB, mi pregunta va para saber si hay alguna manera de conservar las variables una vez que se sale del método en C#, ya que para eso sirve el static en VB.

En el ejemplo que puse, la variable conserva el valor de 5 aún después de que el método termina y si vuelvo a usar el método, la variable sigue teniendo ese valor hasta que lo cambie ahí dentro.

¿Existe algo así en C# o de plano es declarar una variable siempre como atributo de clase?

Update:

No se puede poner static dentro de un método en C#, la palabra reservada static en C# es diferente a su uso en VB.

VB.- para usar una variable dentro de un método sin que pierda valor

C#.- para usar un atributo de clase sin tener que instanciar un objeto dervidado de la misma, además de que todos objetos de esta clase comparten los mismos valores estáticos.

Así que ....

private void AlgunMetodo()

{

static int variableEstatica = 5;

}

... no es el equivalente al ejemplo que puse en VB. De hecho, ni siquiera compila.

Update 2:

Tampoco quiero declararla como pública, así que public no me sirve tampoco.

Supongo que se requiere de alguien que sepa tanto VB como C# para poderla responder.

Esta no está tan simple, verdad? Nadie se ha acercado ni tantito.

Update 3:

Tampoco quiero declararla como pública, así que public no me sirve tampoco.

Supongo que se requiere de alguien que sepa tanto VB como C# para poderla responder.

Esta no está tan simple, verdad? Nadie se ha acercado ni tantito.

2 Answers

Rating
  • 8 years ago
    Favorite Answer

    Hola,

    Para que la variable sea visible en todo tu programa debes declararla como Public.

    Ejemplo: Public string _Nombre_Variable = "Hola";

    Y dónde sea que consultes la variable "_Nombre_Variable" tendrá el valor "Hola".

    Ésto no es válido para realizarlo dentro de un método, sino que es pública para toda la clase y debe definirse afuera, pero será visible en todos los métodos donde la invoques.

    Si requieres mantener su valor de una clase a otra, lo que utilizo más es pasarla siempre como parámetro por referencia o sea cuando invocas el método lo haces así: mimetodo(variable_X, ref variable_publica), de ésta forma si ése método llega a modificar el valor de variable_publica, el nuevo valor será visible desde la clase donde se invocó... y cada modificación que sufra esa variable se irá reflejando en todo el proyecto.

    Saludos.

  • Anonymous
    8 years ago

    parece que es algo asi

    static int variable=5;

    varia un poco la sintaxis pero el funcionamiento debe ser el mismo

Still have questions? Get your answers by asking now.