c# - Generic Method Return Type as Type parameter -
i have extension method working ok cast string values various types, looks this:
public static t totype<t> (this string value, t property)     {         object parsedvalue = default(t);         type type = property.gettype();          try         {             parsedvalue = convert.changetype(value, type);         }         catch (argumentexception e)         {             parsedvalue = null;         }          return (t)parsedvalue;     }   i'm unhappy way looks when calling method, however:
myobject.someproperty = stringdata.totype(myobject.someproperty);   specifying property obtain property's type seems redundant. rather use signature this:
public static t totype<t> (this string value, type type) { ... }   and have t end type of type. make calls cleaner:
myobject.someproperty = stringdata.totype(typeof(decimal));   when try call way, however, editor complains return type of extension method can't infered usage. can link t type argument?
what missing?
thanks
is looking for? i've added catch cases cast isn't valid also
decimal = stringname.totype<decimal>();  public static t totype<t>(this string value) {      object parsedvalue = default(t);      try      {          parsedvalue = convert.changetype(value, typeof(t));      }      catch (invalidcastexception)      {          parsedvalue = null;      }      catch (argumentexception)      {          parsedvalue = null;      }      return (t)parsedvalue; }    edit
a shortcut approach fix anton's comment
if (typeof(t).isvaluetype)    return default(t);      
Comments
Post a Comment