Genéricos

12/02/2007 - 17:36 por Alhambra-Eidos Kiquenet | Informe spam
Hola a todos,

tengo una serie de métodos así:

#region Short - Int16
/// <summary></summary>
public object ValorValido(short? valor)
{
if (valor.HasValue)
return valor.Value;
else
return DBNull.Value;
}

#endregion

#region Int - Int32
/// <summary></summary>
public object ValorValido(int? valor)
{
if (valor.HasValue)
return valor.Value;
else
return DBNull.Value;
}
#endregion

Se puede utilizar Genéricos de alguna formapara dejarlos en un método, sin
que se produzca merma en el rendimiento.

Saludos.
http://www.alhambra-eidos.com/web2005/index.html
www.kiquenet.net

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
12/02/2007 - 17:53 | Informe spam
"Alhambra-Eidos Kiquenet"
wrote in message news:
#region Short - Int16
/// <summary></summary>
public object ValorValido(short? valor)
{
if (valor.HasValue)
return valor.Value;
else
return DBNull.Value;
}

#endregion

#region Int - Int32
/// <summary></summary>
public object ValorValido(int? valor)
{
if (valor.HasValue)
return valor.Value;
else
return DBNull.Value;
}
#endregion

Se puede utilizar Genéricos de alguna formapara dejarlos en un método, sin
que se produzca merma en el rendimiento.




Si no me equivoco, debería funcionar asi (no lo he probado):

public object ValorValido<T>(Nullable<T> valor)
{
if (valor.HasValue)
return valor.Value;
else
return DBNull.Value;
}

Recuerda que int? y short? son abreviaturas de Nullable<int> y
Nullable<short>.
Respuesta Responder a este mensaje
#2 Alhambra-Eidos Kiquenet
13/02/2007 - 09:11 | Informe spam
Si no me equivoco, debería funcionar asi (no lo he probado):

public object ValorValido<T>(Nullable<T> valor)
{
if (valor.HasValue)
return valor.Value;
else
return DBNull.Value;
}

Recuerda que int? y short? son abreviaturas de Nullable<int> y
Nullable<short>.



Hola, gracias, Alberto.

Lo he probado y no me ha compilado, ni tampoco así:
public static object ValorValidoNulable(Nullable<T> valor)
{
if (valor.HasValue)
return valor.Value;
else
return DBNull.Value;
}

Indica que el tipo T no está definido. Intentaré buscar la sintaxis de
genéricos para ver cómo se puede expresar que reciba un tipo Nullable.

Saludos.
Respuesta Responder a este mensaje
#3 Alberto Poblacion
13/02/2007 - 10:12 | Informe spam
"Alhambra-Eidos Kiquenet"
wrote in message news:
public static object ValorValidoNulable(Nullable<T> valor)
Lo he probado y no me ha compilado [...]



OK, el error que da al compilar es que "T debe er un tipo que no sea
Nullable". Se puede arreglar con un constraint asi:

public object ValorValido<T>(Nullable<T> valor) where T:struct
{
if (valor.HasValue)
return valor.Value;
else
return DBNull.Value;
}

Y con eso ya compila.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida