c#でTryParseをジェネリックで利用

静的メソッドTryParseをジェネリックで解決できないので、メソッドを呼び出す。 リフレクションを使うのでちょっと無理やりかなぁ。

        type parse<type>;(string s)
        {
            MethodInfo method = typeof(type).GetMethod("TryParse", new Type[] { typeof(string), typeof(type).MakeByRefType() });
            object[] parameters = new object[] { s, null };
            if ((bool)method.Invoke(null, parameters))
            {
                return (type)(parameters[1]);
            }
            else {
                return default(type);
            }
        }</type>
参考はここ MSDN です。