我试图转换价格(来自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
}
当我尝试这样的事情时,我相信它的价值必须低于无穷大。
如何转换此价格以便进行比较?
答案 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。