C sharp - NO SE QUE ESTOY HACIEDO MAL O ME FALTA

   
Vista:

NO SE QUE ESTOY HACIEDO MAL O ME FALTA

Publicado por Andres (4 intervenciones) el 08/09/2007 00:45:48
No logro que detecte en el formulario MAIN que existe un miembro llamado MyCodigo de la DLL llamada MYCLASE.

¿Que mas me falta definir o que es lo que esta mal escrito o en diferente orden?.

-Creo un Formulario MAIN que pretende utilizar los objetos de MYCLASE.DLL
-MYCLASE.DLL tiene una clase llamada ENLACE y esta un miembro llamado MyCodigo()

-A medida que escribo el código automaticamente me va detectando MYCLASE.ENLACE ... pero no detecta MyCodigo(), como si no existiera. Les dejo el ejemplo.

Gracias

####################################################################
// Creo una MYCLASE.DLL
// PROYECTO MYCLASE
using System;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Text;
namespace MYCLASE
{
public class ENLACE
{
public void MyCodigo(string cad1, string cad2)
{
// Codigo a ejecutar

}}}

####################################################################
// 1) Creo PROYECTO MAIN
// 2) Creo una FORMULARIO
// 3) Agrego a la lista de Referencia MYCLASE
// 4) Intento utilizar MyCodigo()

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace MAIN
{
public partial class Form1 : Form
{
public Form1()
{
}

private void Form1_Load(object sender, EventArgs e)
{
MYCLASE.Enlace. //<--- NO ME MUESTRA QUE EXISTE "MyCodigo()"
}

private void Btn_Aceptar_Click(object sender, EventArgs e)
{
}
}
}
####################################################################
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:NO SE QUE ESTOY HACIEDO MAL O ME FALTA

Publicado por Emilio (13 intervenciones) el 09/09/2007 15:45:24
Pues sucede que tienes que "instanciar" la clase Enlace.

Es decir, deberías hacer:

MYCLASE.Enlace Clase1 = new MYCLASE.Enlace();
Clase1.MyCodigo(...);

Para no tener que instanciarla tendrías que crear una clase "estática". Una clase estática viene bien cuando no necesita nada más que una instancia de esa clase en todo tu programa. Para ello haz lo siguiente:

####################################################################
// Creo una MYCLASE.DLL
// PROYECTO MYCLASE
using System;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Text;
namespace MYCLASE
{
public static class ENLACE
{
public static void MyCodigo(string cad1, string cad2)
{
// Codigo a ejecutar

}}}

####################################################################

De esta forma, ya si te aparece MyCodigo para ejecutar sin haberla instanciado antes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:NO SE QUE ESTOY HACIEDO MAL O ME FALTA

Publicado por Andres (4 intervenciones) el 09/09/2007 17:00:44
Muchas gracias por tu ayuda, ahora funciona la instancia.

En algun momento intente instanciarla pero equivocadamente, lo que habia intentado era esta manera :

object Clase1 = new MYCLASE.Enlace() ;
...

¿En que casos se utiliza el "object" ?

Gracias nuevamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar