Principales respuestas
Utilizar una variable local, en otra parte del programa

Pregunta
-
Buenos días,
Estoy utilizando Windows Form para realizar un programa y utilizo una variable local para obtener información de una librería. Quisiera utilizar esa información después en otra parte del programa. Como tendría que hacerlo?, adjunto programa.
private void Open_global_Click(object sender, EventArgs e) { OpenFileDialog fileSearch = new OpenFileDialog(); fileSearch.Filter = "*.al15_1|*.al15_1"; fileSearch.RestoreDirectory = true; fileSearch.ShowDialog(); string file_name = fileSearch.FileName.ToString(); FileInfo Library_info = new FileInfo(file_name); try { UserGlobalLibrary userLib = MyTiaPortal.GlobalLibraries.Open(Library_info, OpenMode.ReadOnly); Estado.Text = "Abriendo la librería global... de la ruta " + file_name; } catch (Exception ex) { string error = "No se puede abrir la librería razon: " + ex.ToString(); System.Windows.Forms.MessageBox.Show(error); } } private void Add_device_li_Click(object sender, EventArgs e) { Device device = MyProject.Devices.CreateFrom(userLib.MasterCopyFolder.MasterCopies.Find("VARIADOR")); }
La variable que quiero utilizar es userLib.
Gracias de antemano
- Editado Sergio ParraModerator martes, 18 de junio de 2019 13:42 formatear codigo fuente
Respuestas
-
Hola.
Podes crearte una clase y usar variables static para que puedas acceder a ella desde cualquier parte del programa.
public static class MiClase { public static string MiVariable; }
Para utilizar esta variable.
MiClase.Mivariable = "Hola";
Cristian Torres
Blog Cristian Torres
El Salvador - San Salvador- Propuesto como respuesta Carlos_Ruiz_M martes, 18 de junio de 2019 14:35
- Marcado como respuesta Ekhi miércoles, 19 de junio de 2019 8:24
Todas las respuestas
-
Hola.
Podes crearte una clase y usar variables static para que puedas acceder a ella desde cualquier parte del programa.
public static class MiClase { public static string MiVariable; }
Para utilizar esta variable.
MiClase.Mivariable = "Hola";
Cristian Torres
Blog Cristian Torres
El Salvador - San Salvador- Propuesto como respuesta Carlos_Ruiz_M martes, 18 de junio de 2019 14:35
- Marcado como respuesta Ekhi miércoles, 19 de junio de 2019 8:24
-
Hola Buenos dias
Me genera alguna curiosidad cuando utilizas términos como variable global o variable Local
Técnicamente eso no Existe en C#
Lee este link por favor
https://docs.microsoft.com/es-MX/dotnet/csharp/programming-guide/classes-and-structs/classes
En c# los bloques de codigo se separan por las {}
Según to codigo
private void Open_global_Click(object sender, EventArgs e) { OpenFileDialog fileSearch = new OpenFileDialog(); fileSearch.Filter = "*.al15_1|*.al15_1"; fileSearch.RestoreDirectory = true; fileSearch.ShowDialog(); string file_name = fileSearch.FileName.ToString(); FileInfo Library_info = new FileInfo(file_name); try { UserGlobalLibrary userLib = MyTiaPortal.GlobalLibraries.Open(Library_info, OpenMode.ReadOnly); Estado.Text = "Abriendo la librería global... de la ruta " + file_name; } catch (Exception ex) { string error = "No se puede abrir la librería razon: " + ex.ToString(); System.Windows.Forms.MessageBox.Show(error); } }
userLib no esta declarada dentro de tu método por eso no tienes acceso a su definición. las declaraciones dentro de un método son variables a nivel de ese método.
Que es lo que tienes que hacer declara tu variable a nivel de la clase.
public class MiCLase { private string userLib;
//Aqui la definicion de tu metodo }
De esta forma tu método tendrá acceso a la variable.
Nota: A este nivel no es una variable si no un atributo de la clase. las clases se componen de Propiedades/Atributos y Métodos
Asi que el temino de variable local o Global en C# no existe
- Editado niqel jueves, 20 de junio de 2019 16:00 error de escritura
-