【发布时间】:2012-04-11 00:51:54
【问题描述】:
可以写出类似的结构吗?
我想以某种方式为 T 类型的参数设置默认值。
private T GetNumericVal<T>(string sColName, T defVal = 0)
{
string sVal = GetStrVal(sColName);
T nRes;
if (!T.TryParse(sVal, out nRes))
return defVal;
return nRes;
}
另外,我发现了以下链接:
Generic type conversion FROM string
我认为,这段代码必须有效
private T GetNumericVal<T>(string sColName, T defVal = default(T)) where T : IConvertible
{
string sVal = GetStrVal(sColName);
try
{
return (T)Convert.ChangeType(sVal, typeof(T));
}
catch (FormatException)
{
return defVal;
}
}
【问题讨论】:
标签: c# optional-arguments generic-method