摘要:C# MethodInfo Invoke 有 Out 參數的方法
之前把TryParse的方法寫成擴充方法,後來忘了整到目前使用的類別庫中,避免再熊熊忘記,先記錄一下
public static T TryParse<T>(this string value)
{
List<MethodInfo> methods = typeof(T).GetMethods(BindingFlags.Static | BindingFlags.Public).
Where(p => p.Name.ToLower() == "tryparse").ToList();
if (methods.Count > 0)
{
try
{
MethodInfo m = methods[0];
object[] parameters = new object[] { value, null };
bool result = (bool)m.Invoke(null, parameters);
if (result)
{
return (T)parameters[1];
}
}
catch
{
return default(T);
}
}
return default(T);
}