Attualmente uso questo metodo di estensione conversione pratico per fare conversioni tra tipi:Come posso risolvere il problema con la conversione generica a Nullable <T>?
public static T To<T>(this IConvertible obj)
{
return (T)Convert.ChangeType(obj, typeof(T));
}
Tuttavia, non gradisce conversione dei valori validi Nullable, per esempio, ciò non riesce:
"1".To<int?>();
Ovviamente , 1 è facilmente convertito in una, ma ottiene l'errore (int?):
Invalid cast from 'System.String' to 'System.Nullable`1[[System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'.
Questo è un esempio, ovviamente semplificata, in realtà ci sono ing che faccia conversioni tipi di stringhe in questo modo:
packageDb.Quantity = package.package.ElementDeep(Namespace + "PackageQuantity", Namespace + "ActualQuantity", Namespace + "Quantity").ValueOrNull().To<int?>();
Se Convert.ChangeType non piace Nullable, chiunque hanno tutte le grandi idee?
Vedere la mia domanda: http://stackoverflow.com/questions/773078/c-convert-string-to-nullable-type-int-double-etc –