Foros del Web » Programación para mayores de 30 ;) » .NET »

Variables globales

Estas en el tema de Variables globales en el foro de .NET en Foros del Web. Buenas, TEngo una duda de como hacer una variable global en visual c#, en visual basic las declarabamos en un modulo, pero aqui como se ...
  #1 (permalink)  
Antiguo 05/06/2006, 01:31
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 11 meses
Puntos: 0
Variables globales

Buenas,

TEngo una duda de como hacer una variable global en visual c#, en visual basic las declarabamos en un modulo, pero aqui como se hace?, el problema es que tengo esta funcion

private String obtenerConexion()
{
StreamReader archivo=new StreamReader("C:\\SCADA\\ruta.txt");
string slinea="";
ArrayList aObj=new ArrayList();
while (slinea != null)
{
slinea = archivo.ReadLine();
if(slinea != null)
aObj.Add(slinea);
}
archivo.Close();
slinea=aObj[0].ToString();
return(slinea);

}//obtenerConexion

Con esta función obtengo la cadena de conexion a la BD dsd un fichero, y esta la llamo solo una vez en el form principal la primera vez que se carga el programa, entonces la almaceno en una vble del tipo string llamada ruta, mi problema es que no se como poner esta varible de tal forma que sea global, es decir, que dsd mis clases de perisistencia pueda llamarla sin que me de el error de que la variable en cuestion no existe

Alguna idea?

Gracias
  #2 (permalink)  
Antiguo 05/06/2006, 14:59
Avatar de .seb  
Fecha de Ingreso: marzo-2006
Ubicación: Uruguay
Mensajes: 493
Antigüedad: 18 años, 8 meses
Puntos: 1
Hazla estática de una clase estática.

Código:
public static class Connection
{
      static string conexion;

      public static string GetStr()
      {
              return conexion;
      }
}
__________________
saludos
seba
http://sgomez.blogspot.com
  #3 (permalink)  
Antiguo 06/06/2006, 05:27
 
Fecha de Ingreso: diciembre-2003
Mensajes: 288
Antigüedad: 20 años, 11 meses
Puntos: 0
Como soy torpe pregutno, entonces si tal y como tu me has cometnado yo hago
Connection c=new Connection;

c.conexion;//aqui tendria el valor de la conexion es correcto?, aunque deberia declarar esta clase en todas las demás para poder utilizarla no?
  #4 (permalink)  
Antiguo 14/01/2010, 13:57
 
Fecha de Ingreso: enero-2010
Mensajes: 2
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Variables globales

Aunque esto sea de 2006 yo a través de Google he llegado hasta aquí, así que respondo.

Respuesta: Lo que a mi me funcionó es declarar en la clase por donde entra el programa esto:

Código:
namespace WindowsFormsApplication1
{
    public static class VariablesGlobales
    {
        public static MySqlConnection conex;
    }

    class main
    {
      . . .
Y después simplemente acceder a ella desde cualquier clase del proyecto de la siguiente manera:
Código:
VariablesGlobales.conex = ...
Como la clase en sí es estática significa que todos sus métodos serán estáticos (en este caso no tiene métodos), y significa también que no puedes crear una instancia de la clase, es decir, esto NO se puede hacer
Código:
 VariablesGlobales misVariablesGlobales = new VariablesGlobales()
.

Si quisieras además hacer un constructor tendría que ser estático también.

Bueno saludos y espero que otra persona que ande buscando el cómo poner variables globales en C# le sirva esto de ayuda!

Ciaaao!
  #5 (permalink)  
Antiguo 14/01/2010, 14:16
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 9 meses
Puntos: 50
Respuesta: Variables globales

Hazla estática de una clase estática.
Es correcto , con variables estáticas y separandolas en un archivo independiente sería la mejor forma

Cita:
Iniciado por kakarot
Con esta función obtengo la cadena de conexion a la BD dsd un fichero
Y porque guardas la cadena de conexión en un fichero, no sería más fácil guardarla en el app.config or web.config de tu aplicación?

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:11.