Преобразовать из цены - PullRequest
0 голосов
/ 08 июня 2010

Я пытаюсь конвертировать цену (из API (код ниже)).

public class Price
{
    public Price();
    public Price(double data);
    public Price(double data, int decimalPadding);
}

Я хотел бы сравнить цену этого API с Double. Просто попытка конвертировать в Double не работает, как я бы надеялся.

Double bar = 21.75;
Price price = new Price();

if (Convert.ToDouble(price) >= bar) {
//code
}

Когда я пытаюсь что-то подобное, я думаю, что это говорит о том, что значение должно быть меньше бесконечности.

Как я могу конвертировать эту цену, чтобы их можно было сравнить?

Ответы [ 3 ]

1 голос
/ 08 июня 2010

Convert.ToDouble не может волшебным образом преобразовать объект Price в двойной, если Price не реализует IConvertible.

1 голос
/ 08 июня 2010

Вам понадобится свойство в вашем ценовом объекте, которое возвращает двойное число и сравнивает его.

0 голосов
/ 08 июня 2010

Вы можете использовать неявный оператор для преобразования в double.Это в соответствии с MSDN для «неявного» оператора в C # .

Например:

class Price
{
    public static implicit operator double (Price d)
    {
        return d.data;
    }
    public static implicit operator Price (double d)
    {
        return new Price(d);
    }
}

В качестве альтернативы, для ваших сравнений реализуйте IComparable<double> и IEquatable<double>в вашем классе Price затем используйте CompareTo вместо этого и / или другой оператор перегрузки .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...