我有一个这样的结构。
public struct Money
{
private readonly decimal _quantity;
private Money(decimal qty)
{
_quantity = Math.Round(qty, 2);
}
public static implicit operator Money(decimal dec)
{
return new Money(dec);
}
}
我Money
是否必须重载所有运算符 +、-、<、<=、>、>=、==、!= 等?或者有没有办法接受所有的运算decimal
符Money
?如您所见Money
,只有一个字段是_quantity
. 我希望所有要求的操作员Money
都应该返回,就好像它被要求提供 _quantity 一样。
也许在隐式转换运算符下面重载会解决这个问题。
public static implicit operator decimal(Money money)
{
return money._quantity;
}
我正在创建Money
结构,因为我不想decimal
在我的整个项目中使用。编译器应该强制我使用Money
而不是decimal
. 如果我隐式使用上述转换运算符,它将与创建此结构的原因相矛盾。提前致谢...