Можно ли написать аналогичную конструкцию?
Я хочу как-то установить значение по умолчанию для аргумента типа 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;
}
Кроме того, я нашел следующую ссылку:
Преобразование общего типа FROM из строки
Я думаю, этот код должен работать
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;
}
}