Чтобы ответить на вопрос, который будет работать, чтобы установить значение по умолчанию
private T GetNumericVal<T>(string sColName, T defVal = default(T))
{
string sVal = GetStrVal(sColName);
T nRes;
if (!T.TryParse(sVal, out nRes))
return defVal;
return nRes;
}
Но вы не можете вызвать статический метод TryParse, так как компилятор не может знать, что тип T объявляет этот статический метод.