【发布时间】:2011-10-31 13:11:16
【问题描述】:
我为小数 AsCurrency(这个小数)创建了一个扩展方法
当我构建时我会得到一个错误
以下方法或属性之间的调用不明确: 'CurrencyHelper.AsCurrency(decimal)' 和 'CurrencyHelper.AsCurrency(十进制)'
什么鬼?如果我清除解决方案,它将再次构建。下次它会再次失败。
是小数的问题还是我的解决方案有问题?
有人遇到过同样的问题吗?
编辑
扩展在一个程序集中。 CurrencyHelper 只有一个定义。
代码如下:
public static class CurrencyHelper
{
public static string AsCurrency(this decimal amount)
{
return ((decimal?) nr).AsCurrency();
}
public static string AsCurrency(this decimal? amount)
{
var cultureInfo = ...
return (nr ?? 0).ToString("c2", cultureInfo);
}
}
想法是用所需的cultureinfo格式化十进制值,如果数量为空,仍然提供0
【问题讨论】:
-
您是否在两个不同的程序集中定义了
CurrencyHelper?也许您已将.cs文件共享到两者中?这会导致冲突...... -
您能否对一个项目的扩展程序集有一个项目引用(正确),对同一个程序集有一个 dll 引用(错误)?然后你可能会遇到版本冲突,VS 会看到同一个 dll 的两个版本。虽然我会期待一个“版本冲突”错误......
-
在同一个项目中定义和使用。没有其他地方
标签: c# visual-studio extension-methods