Děkuji za radu a rychlou odpověď. Operátor as ... že mě to nenapadlo, ten se k tomu přímo nabízí :-) Generická varianta funguje také, jen Váš kód je třeba upravit, protože generuje chybu při překladu (není možné přetypovat null na T, protože T by mohl být i nenullovatelný hodnotový typ. Pokud se však metoda upraví takto:
public Nullable<T> HandleDBNull<T>(object value) where T: struct
{
if (value == DBNull.Value)
return (Nullable<T>)null;
else
return (Nullable<T>)value;
}
a volání takto:
double? value = HandleDBNull<double>(reader["blabla"]);
vše funguje, jak má. Děkuji. Kdyby měl někdo podobný problém, přikládám adresy na MSDN, které mi pomohly k řešení: Constraints on Type Parameters (C#) http://msdn.microsoft.com/en-us/library/... Nullable Types(C#): http://msdn.microsoft.com/en-us/library/...
|