从价格转换

时间:2010-06-07 22:17:32

标签: c#-4.0

我试图转换价格(来自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 个答案:

答案 0 :(得分:1)

您需要在price对象中使用一个返回double的属性并将其进行比较。

答案 1 :(得分:1)

Convert.ToDouble无法将Price对象神奇地转换为double,除非Price实现IConvertible

答案 2 :(得分:0)

您可以使用隐式运算符转换为double。这是MSDN for "implicit" operator in C#

E.g。

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

或者,为了进行比较,请在Price类上实施IComparable<double>IEquatable<double>,然后使用CompareTo代替和/或another operator overload