by UnquaLe
24. October 2007 19:45
I thought C# Generics are useful also for type convertion. I messed code alittle and the emergent code snippet looks fine for me. It is easy and simple.
public class GenericConverter
{
public static T Parse<T>(
string sourceValue)
where T : IConvertible
{
return (T)Convert.ChangeType(sourceValue,
typeof(T));
}
public static T Parse<T>(
string sourceValue, IFormatProvider provider)
where T : IConvertible
{
return (T)Convert.ChangeType(sourceValue,
typeof(T), provider);
}
}
//Usage
DateTime datetime = GenericConverter.Parse<DateTime>("12.10.2007");
IFormatProvider providerEN = new System.Globalization.CultureInfo("en-US", true);
IFormatProvider providerTR = new System.Globalization.CultureInfo("tr-TR", true);
DateTime x = GenericConverter.Parse<DateTime>("12.10.2007", providerTR); // ddMMyyyy
DateTime y = GenericConverter.Parse<DateTime>("12.10.2007", providerEN); // MMddyyyy
int iValue = GenericConverter.Parse<int>("12");
Enjoy !.
Doga.