Generic TryParse in C#.NET

  1. public static T ? TryParse < T > (string value, TryParseHandler < T > handler) where T : struct   
  2. {  
  3.     if (String.IsNullOrEmpty(value)) return null;  
  4.     T result;  
  5.     if (handler(value, out result)) return result;  
  6.     Trace.TraceWarning("Invalid value '{0}'", value);  
  7.     return null;  
  8. }  
  9.   
  10. public delegate bool TryParseHandler < T > (string value, out T result);  
  11.   
  12. //How to use?   
  13.   
  14. var value = TryParse < int > ("123"int.TryParse);  
  15. var value2 = TryParse < decimal > ("123.123"decimal.TryParse);