Generic String.Parse Extension Method
How can I create generic parse method to convert string to number or date?
After reading this post about missing parses method for
nullable integer and possible implementation. I want to share my version of parse
method with generic touch.
Here's my parser class
using System; using System.ComponentModel;
public static class Parser {
public static T Parse<T>(this string value) { // Get default value for type so if string // is empty then we can return default value. T result = default(T);
if (!string.IsNullOrEmpty(value)) { // we are not going to handle exception here // if you need SafeParse then you should create // another method specially for that. TypeConverter tc = TypeDescriptor.GetConverter(typeof(T)); result = (T)tc.ConvertFrom(value); }
return result; } }
And here's how you use it.
// regular parsing int i = "123".Parse<int>(); int? inull = "123".Parse<int?>(); DateTime d = "01/12/2008".Parse<DateTime>(); DateTime? dn = "01/12/2008".Parse<DateTime?>();
// null values string sample = null; int? k = sample.Parse<int?>(); // returns null int l = sample.Parse<int>(); // returns 0 DateTime dd = sample.Parse<DateTime>(); // returns 01/01/0001 DateTime? ddn = sample.Parse<DateTime?>(); // returns null
|
 My name is Jigar Desai I share my ideas on this site and you can contact me by filling contact form.
|