Clase genérica con tipos nullables

01/01/2008 - 01:24 por Clara | Informe spam
Hola,

No es posible definir una clase que genèrica que acepte tipos nullables?

algo asi:

class P <T>
{
private T _i1;
private T _i2;

public P (T i1, T i2) {_i1 = i1; _i2 = i2;}

public bool Error {
get {
if (_i1.HasValue && _i2.HasValue) //Esto no compila.
{

}
}

Tengo una clase con dos campos privados del tipo decimal?, (en el ejemplo T
seria decimal?). Y esta misma clase la queria hacer genérica, puesto que la
tengo que repetir con valores tipos DateTime?, Int?, ... pero por lo que
veo, no se puede.
O si?

Grácias.

Preguntas similare

Leer las respuestas

#6 Alberto Poblacion
01/01/2008 - 19:30 | Informe spam
"Clara" wrote in message
news:
Mostrar la cita
Tendrías que meter un "constraint" en la declaración del Generic para
indicar que soporta la comparación (por ejemplo, a través del interfaz
IComparable):

class P<T> where T: struct,IComparable
{
...
return _i1.CompareTo(_i2)>0;
}
#7 Clara
01/01/2008 - 20:11 | Informe spam
Hola Alberto,

class P<T> where T: struct, IComparable<T>
{
.
return _i1.CompareTo(_i2); //System.Nullable no contiene una definición
para CompareTo()
}

creo que hoy no es mi dia de suerte. .. :-(

grácias!



"Alberto Poblacion"
escribió en el mensaje news:
Mostrar la cita
#8 Octavio Hernandez
01/01/2008 - 23:03 | Informe spam
Clara,

Estabas en el buen camino, pero la idea no es comparar los nulables, sino
sus valores:

class P<T> where T: struct, IComparable
{
private T? _i1;
private T? _i2;

public P(T? i1, T? i2) { _i1 = i1; _i2 = i2; }

public bool Error
{
get
{
return _i1 == null || _i2 == null;
}
}

public string Filtro(string nombreVariable)
{
if (_i1 == null && _i2 == null)
return "";
else if (_i1 == null)
return nombreVariable + " <= " + _i2.Value.ToString();
else if (_i1.Value.CompareTo(_i2.Value) > 0)
throw new Exception("KK");
else
{
return ""; // etc.
}
}

public static bool Test1()
{
P<int> parDeEnteros = new P<int>(3, null);
return !parDeEnteros.Error;
}
}

"Clara" wrote in message
news:%23%
Mostrar la cita
#9 Clara
02/01/2008 - 12:41 | Informe spam
Perfecto!
Muchísimas grácias a los dos!

saludos

"Octavio Hernandez" escribió en el mensaje
news:
Mostrar la cita
definición
Mostrar la cita
he
Mostrar la cita
para
Mostrar la cita
Ads by Google
Search Busqueda sugerida