quiero hacer algo como esto:Tipo anulable como un parámetro genérico posible?
myYear = record.GetValueOrNull<int?>("myYear"),
Aviso del tipo anulable como el parámetro genérico.
Dado que la función GetValueOrNull
podría devolver null mi primer intento fue la siguiente:
public static T GetValueOrNull<T>(this DbDataRecord reader, string columnName)
where T : class
{
object columnValue = reader[columnName];
if (!(columnValue is DBNull))
{
return (T)columnValue;
}
return null;
}
Pero el error que estoy recibiendo ahora es:
The type 'int?' must be a reference type in order to use it as parameter 'T' in the generic type or method
derecho! Nullable<int>
es un struct
! Así que he intentado cambiar la restricción de clase a una restricción struct
(y como un efecto secundario no puede volver null
más):
public static T GetValueOrNull<T>(this DbDataRecord reader, string columnName)
where T : struct
Ahora la misión:
myYear = record.GetValueOrNull<int?>("myYear");
da el siguiente error:
The type 'int?' must be a non-nullable value type in order to use it as parameter 'T' in the generic type or method
¿Es posible especificar un tipo anulable como parámetro genérico?
Pls pls hacen su firma '' IDataRecord' de DbDataRecord' .. – nawfal