Ayuda con Generics...

28/03/2007 - 01:19 por vlamafox | Informe spam
He implementado una clase Generica que tiene la siguiente estructura:

public class GTarea<TipoClaseTarea, TipoString> where TipoClaseTarea : Tarea
{
TipoClaseTarea Tarea;
TipoString Cadena;

public GTarea()
{
}

public GTarea(TipoClaseTarea tarea, TipoString cadena)
{
this.Tarea = tarea;
this.Cadena = cadena;
}

public TipoClaseTarea ValorTarea
{
get
{
return this.Tarea;
}
set
{
this.Tarea = value;
}
}

public TipoString ValorCadena
{
get
{
return this.Cadena;
}
set
{
this.Cadena = value;
}
}
}

y la clase tarea tiene la siguiente estructura

public class Tarea
{
private int mvarNumTarea;
private TimeSpan mvarHoraInicio;



public TimeSpan HoraInicio
{
get
{
return mvarHoraInicio;
}
set
{
mvarHoraInicio = value;
}
}


public int NumTarea
{
get
{
return mvarNumTarea;
}
set
{
mvarNumTarea = value;
}
}


private Tarea()
{

}


}


Ahora he cargado la clase tarea de la siguiente manera:

Tarea Tareas;
List<GTarea<Tarea,string>> GTareas;

Luego he llenado la lista GTarea, la que declare anteriormente de la
siguiente manera:
(A propósito todo este ingreso de datos a la lista es con un for)

Tareas.HoraInicio = HoraActual;
Tareas.NumTarea = 1;
GTareas.Add(new GTarea<Tarea, string>(Tareas, cadena)); //cadena es un string

bien mi pregunta es la siguiente: Cómo puedo posicionarme en un elemento que
yo desee de la lista??? ya que yo estoy

haciendolo de la siguiente manera y no me funciona GTareas[indice]...
(sabemos que esta Lista contiene como uno de sus

elementos a otra clase y el otro elemento a un string) o hay alguna otra
forma de implementar generics.
Este es el error q me sale, pero no entiendo como podría solucionarlo la
conversión.
Cannot implicitly convert type
'ISO8583Server.GTarea<ISO8583Server.Tarea,string>' to 'ISO8583Server.Tarea'

Preguntas similare

Leer las respuestas

#1 Eugenio Serrano
28/03/2007 - 04:57 | Informe spam
No has pasado en que linea te salta el error.


Regards / Saludos,
Eugenio Serrano
Microsoft MVP (ASP/ASP.Net)
Solid Quality Mentors
http://www.eugenioserrano.com.ar
if (me.today == me.yesterday) me.tomorrow = null;



"vlamafox" escribió en el mensaje de
noticias news:
He implementado una clase Generica que tiene la siguiente estructura:

public class GTarea<TipoClaseTarea, TipoString> where TipoClaseTarea :
Tarea
{
TipoClaseTarea Tarea;
TipoString Cadena;

public GTarea()
{
}

public GTarea(TipoClaseTarea tarea, TipoString cadena)
{
this.Tarea = tarea;
this.Cadena = cadena;
}

public TipoClaseTarea ValorTarea
{
get
{
return this.Tarea;
}
set
{
this.Tarea = value;
}
}

public TipoString ValorCadena
{
get
{
return this.Cadena;
}
set
{
this.Cadena = value;
}
}
}

y la clase tarea tiene la siguiente estructura

public class Tarea
{
private int mvarNumTarea;
private TimeSpan mvarHoraInicio;



public TimeSpan HoraInicio
{
get
{
return mvarHoraInicio;
}
set
{
mvarHoraInicio = value;
}
}


public int NumTarea
{
get
{
return mvarNumTarea;
}
set
{
mvarNumTarea = value;
}
}


private Tarea()
{

}


}


Ahora he cargado la clase tarea de la siguiente manera:

Tarea Tareas;
List<GTarea<Tarea,string>> GTareas;

Luego he llenado la lista GTarea, la que declare anteriormente de la
siguiente manera:
(A propósito todo este ingreso de datos a la lista es con un for)

Tareas.HoraInicio = HoraActual;
Tareas.NumTarea = 1;
GTareas.Add(new GTarea<Tarea, string>(Tareas, cadena)); //cadena es un
string

bien mi pregunta es la siguiente: Cómo puedo posicionarme en un elemento
que
yo desee de la lista??? ya que yo estoy

haciendolo de la siguiente manera y no me funciona GTareas[indice]...
(sabemos que esta Lista contiene como uno de sus

elementos a otra clase y el otro elemento a un string) o hay alguna otra
forma de implementar generics.
Este es el error q me sale, pero no entiendo como podría solucionarlo la
conversión.
Cannot implicitly convert type
'ISO8583Server.GTarea<ISO8583Server.Tarea,string>' to
'ISO8583Server.Tarea'

Respuesta Responder a este mensaje
#2 vlamafox
28/03/2007 - 06:10 | Informe spam
osea q quiero posicionarme en un elemento de la coleccion como podría hacer
eso. yo asigne asi:
Tarea lTarea
lTarea = GTareas[indice]
y me sale error...

"Eugenio Serrano" wrote:

No has pasado en que linea te salta el error.


Regards / Saludos,
Eugenio Serrano
Microsoft MVP (ASP/ASP.Net)
Solid Quality Mentors
http://www.eugenioserrano.com.ar
if (me.today == me.yesterday) me.tomorrow = null;



"vlamafox" escribió en el mensaje de
noticias news:
> He implementado una clase Generica que tiene la siguiente estructura:
>
> public class GTarea<TipoClaseTarea, TipoString> where TipoClaseTarea :
> Tarea
> {
> TipoClaseTarea Tarea;
> TipoString Cadena;
>
> public GTarea()
> {
> }
>
> public GTarea(TipoClaseTarea tarea, TipoString cadena)
> {
> this.Tarea = tarea;
> this.Cadena = cadena;
> }
>
> public TipoClaseTarea ValorTarea
> {
> get
> {
> return this.Tarea;
> }
> set
> {
> this.Tarea = value;
> }
> }
>
> public TipoString ValorCadena
> {
> get
> {
> return this.Cadena;
> }
> set
> {
> this.Cadena = value;
> }
> }
> }
>
> y la clase tarea tiene la siguiente estructura
>
> public class Tarea
> {
> private int mvarNumTarea;
> private TimeSpan mvarHoraInicio;
>
>
>
> public TimeSpan HoraInicio
> {
> get
> {
> return mvarHoraInicio;
> }
> set
> {
> mvarHoraInicio = value;
> }
> }
>
>
> public int NumTarea
> {
> get
> {
> return mvarNumTarea;
> }
> set
> {
> mvarNumTarea = value;
> }
> }
>
>
> private Tarea()
> {
>
> }
>
>
> }
>
>
> Ahora he cargado la clase tarea de la siguiente manera:
>
> Tarea Tareas;
> List<GTarea<Tarea,string>> GTareas;
>
> Luego he llenado la lista GTarea, la que declare anteriormente de la
> siguiente manera:
> (A propósito todo este ingreso de datos a la lista es con un for)
>
> Tareas.HoraInicio = HoraActual;
> Tareas.NumTarea = 1;
> GTareas.Add(new GTarea<Tarea, string>(Tareas, cadena)); //cadena es un
> string
>
> bien mi pregunta es la siguiente: Cómo puedo posicionarme en un elemento
> que
> yo desee de la lista??? ya que yo estoy
>
> haciendolo de la siguiente manera y no me funciona GTareas[indice]...
> (sabemos que esta Lista contiene como uno de sus
>
> elementos a otra clase y el otro elemento a un string) o hay alguna otra
> forma de implementar generics.
> Este es el error q me sale, pero no entiendo como podría solucionarlo la
> conversión.
> Cannot implicitly convert type
> 'ISO8583Server.GTarea<ISO8583Server.Tarea,string>' to
> 'ISO8583Server.Tarea'
>

Respuesta Responder a este mensaje
#3 Alberto Poblacion
28/03/2007 - 09:43 | Informe spam
"vlamafox" wrote in message
news:
osea q quiero posicionarme en un elemento de la coleccion como podría
hacer
eso. yo asigne asi:
Tarea lTarea
lTarea = GTareas[indice]
y me sale error...



GTareas[indice] no devuelve un objeto "Tarea" sino un "GTarea", que es lo
que has metido en la colección. Si luego quieres sacar de dentro el Tarea,
con la definición de clase que has puesto podrías sacarlo a través de la
propiedad ValorTarea:

Tarea lTarea;
lTarea = GTareas[indice].ValorTarea;
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida