目前我有以下功能

  public int GetVariableValue(TaxReturn taxReturnObj, string identityKey)
    {
        int returnTypeOut = 0;
        if (taxReturnObj.Identity.ContainsKey(identityKey))
        {
            int.TryParse(taxReturnObj.Identity[identityKey], out returnTypeOut);
        }
        return returnTypeOut;
    }

要检索我们使用以下代码的值,

例如
int valPayStatus = GetVariableValue(objTaxretrun, TaxReturnIdentity.aadata_identity_paystatus)

它一直工作正常,因为所有 标识 值都是整数,但最近我们添加了带有字符串和 bool 类型的新标识。
所以我想将上述函数设为 Generic ...但我不知道该怎么做,我试图在谷歌上搜索但找不到任何东西。

最佳答案

    public T GetVariableValue<T>(TaxReturn taxReturnObj, string identityKey)
    {
        if (taxReturnObj.Identity.ContainsKey(identityKey))
        {
            return (T) Convert.ChangeType(taxReturnObj.Identity[identityKey], typeof(T));
        }
        else
        {
           return default(T);
        }
    }

10-06 02:42