3

私のプロジェクトには、正常に機能している拡張メソッドがあります。

public static class Extensions
{
    public static bool IsBetween<T>(this T value, T low, T high) 
                                                         where T : IComparable<T>
    {
        return value.CompareTo(low) >= 0 && value.CompareTo(high) <= 0;
    }
}

プロジェクトをビルドしようとすると、次のエラーが発生します。

エラー 1699 次のメソッドまたはプロパティの呼び出しがあいまいです: 'BillingFormsApplication.Extensions.IsBetween(double, double, double)' と 'BillingFormsApplication.Extensions.IsBetween(double, double, double)'

IsBetweenファイルにはメソッドが1 つしかありませExtensionsん...IsBetweenそして、ソリューション全体でメソッドは 1 つだけです。

ソリューションをクリーンアップして再構築しようとしました。それでもエラーが発生します。

拡張機能を削除して続行することもできましたが、これまでは非常に便利でした.

フレデリックに追加:

                    if (percentCash.IsBetween(0, 99))
                {

それが修正されるなら、それらの数字を Double にキャストするのだろうか。すぐに試してみます。お気に入り:

if (percentCash.IsBetween((double)0, (double)99))
4

1 に答える 1

2

おそらく、これと同じ拡張メソッドが定義されている DLL を参照しているか、コード内の別の場所でこれを定義しています。ファイル検索で検索を実行してIsBetween、表示されるかどうかを確認してください。そうでない場合は、参照した DLL を調べて、この拡張機能がそれらのいずれかに存在しないかどうかを確認してください。

于 2013-03-28T16:14:55.790 に答える