有可能写出类似的结构吗?
我想以某种方式为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;
    }
}

最佳答案

我没有试过,但将T defVal = 0改为T defVal = default(T)

关于c# - 通用方法和可选参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9890413/

10-09 05:11