Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

01/05/2011 #1


Ayuda. Duda con C#.net. Objetos
Hola gente. como va?
Paso a contarles, soy nuevo en este lenguaje y mas q nada soy nuevo en la programacion orientada a objetos.

Necesito declarar unos objetos en un metodo pero necesito que sean accesibles desde otros metodos en el mismo form.
Aca les muesto para q quede mas claro. Los objetos AUX son los que necesito acceder por ejemplo desde el metodo
Código:
namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
         private void IdentModelo(string[] data)
        {
            this.Text = data[1]; // titulo del form
            
            Salidas[] AUX = new Salidas[int.Parse(data[2])];

            for (int cnt = 0; cnt < int.Parse(data[2]); cnt++)
            {
                AUX[cnt] = new Salidas();
            }
        }

        private void nombres()
        {
            AUX[0].nombre = "aux1";
            AUX[1].nombre = "salida";
            AUX[2].nombre = "salida2";
         } 
     }
}
en data[2] ingresa un valor por puerto serie que no esta determinado. Por eso es que lo meto en un for para que sea dinamico. Espero que me entiendan. Neceito acceder a los objetos AUX creados en IdentModelo() desde otros metodos.

Saludos y gracias
03/05/2011 #2

Avatar de Meta

para que las variables sean accesibles tienes que jugar con la definición de las variables. Cuando defines una variable dentro de un método o función, esa variable va a ser privada a ese método. Si en lugar de definirla en el método la defines a nivel de clase puede ser privada a toda la clase, es decir, que se pueda usar en todos los métodos de tu clase, o publica y además de poder usada en los metodos verse desde fuera de la clase.
Para el ejemplo que tienes en lugar de definir la variable dentro de la función, si necesitas poder modificarla desde otra definela a nivel de clase.
03/05/2011 #3


Meta gracias por tu respuesta. El tema es que no puedo declararla a nivel de clase ya que como podes ver, al instanciar la clase se crea un arreglo de objeto cuyo tamaño esta determinado por un dato que ingresa por puerto serie.
Dicho esto, si yo creara el objeto a nivel de clase, este deberia ser de un tamaño determinado en tiempo de programacion.
Espero que me hayas entendido, saludos y gracias
03/05/2011 #4

Avatar de Meta

Y cual es el problema de que la definas a nivel de clase con longitud 0, y en el método que recibes el dato de puerto serie la vuelvas a inicializar con el tamaño correcto?
03/05/2011 #5


la verdad? ni idea. No lo probe tampoco. Dejame probarlo y edito. gracias

EDITADO: A primera vista parece que funciona. Mañana lo pruebo bien. Te agradesco mucho Meta.
Despues, si no es molestia, te hago una pregunta a nivel tramas de comunicacion serial.
saludos
03/05/2011 #6

Avatar de Meta

Ni siquiera tienes porque darle un tamano fuera. La puedes simplemente declarar y luego ya la inicializas en tu metodo.
03/05/2011 #7


Exactamente eso fue lo que hice. Soy nuevo en C# y en POO y aveces me olvido de estas cosas. Gracias Meta.
Por casualidad tienes algun ejemplo de como detectar e identificar tramas enviadas a un pic serialmente? En c# ya hice un programa que me detecta e identifica las tramas enviadas por el pic, pero a la hora de hacerlo al revez, que le pic detecte e identifique las tramas de la pc, se me complica demasiado.
Saludos, gracias
03/05/2011 #8

Avatar de Meta

Sí, hice un manual sobre ello.

http://electronica-pic.blogspot.com/...rnica-pic.html

Saludo.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.