当T提供解析(字符串)方法时,我有以下方法尝试将字符串解析为类型T:
public static bool ParseToType<T>(string s, out T parsedValue)
{
if (typeof(T) == typeof(string)) {
parsedValue = (T) s; //doesn't compile.
return true;
}
if (!IsParseable(typeof(T)))
{
parsedValue = default(T);
return false;
}
var meth = typeof(T).GetRuntimeMethod("Parse", new Type[] { typeof(String) });
try
{
parsedValue = (T)meth.Invoke(typeof(T), new String[] { s });
}
catch ( Exception e) {
parsedValue = default(T);
return false;
}
return true;
}
但是当T的类型也是字符串时,我需要处理特殊情况。字符串不提供“解析”方法,所以我只想返回提供的字符串。
然而,当T本身是字符串时,我无法弄清楚如何将s转换为T.