我有一些方法可以根据源数据类型执行数据转换:
private static string GetStringValue(String value) { ... }
private static string GetStringValue(DateTime value) { ... }
private static string GetStringValue(Decimal value) { ... }
private static string GetStringValue(Double value) { ... }
private static string GetStringValue(Enum value) { ... }
private static string GetStringValue(Object value) { ... }
从源代码中,我可以使用以下方法调用其中一种方法:
GetStringValue((dynamic)v);
这几乎适用于所有情况,但是当我尝试使用十进制或双精度时我遇到了问题......我得到了十进制和双变量之间模糊调用引起的异常。
有什么方法可以解决这个问题吗?
答案 0 :(得分:1)
我终于找到了问题。当' v'是一个Int32。我并没有为这种类型定义一个重载,因为我认为它会归结为'对象'重载,但运行时尝试使用'十进制'和' double'导致例外的那些。
所以解决方案就是添加
private static string GetStringValue(Int32 value) { ... }