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'
 

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'

Preguntas similares