使用动态调用的十进制和双精度方法之间的模糊调用

时间:2014-03-31 08:22:00

标签: c# dynamic type-conversion

我有一些方法可以根据源数据类型执行数据转换:

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);

这几乎适用于所有情况,但是当我尝试使用十进制或双精度时我遇到了问题......我得到了十进制和双变量之间模糊调用引起的异常。

有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我终于找到了问题。当' v'是一个Int32。我并没有为这种类型定义一个重载,因为我认为它会归结为'对象'重载,但运行时尝试使用'十进制'和' double'导致例外的那些。

所以解决方案就是添加

private static string GetStringValue(Int32 value) { ... }