为了钱,我使用的自定义值类型只包含一个decimal
字段。简化代码如下。
public struct Money
{
private decimal _value;
private Money(decimal money)
{
_value = Math.Round(money, 2, MidpointRounding.AwayFromZero);
}
public static implicit operator Money(decimal money)
{
return new Money(money);
}
public static explicit operator decimal(Money money)
{
return money._value;
}
}
在我的项目中使用此结构时,有时会产生歧义。有时我也会设置一个object
,其常数应为Money
。现在我正在初始化像
object myObject=(Money)200;
我可以为自定义类型Money
指定后缀。我想用以下内容初始化对象。
object myObject=200p;
答案 0 :(得分:7)
您无法使用C#分配自定义后缀。您可以做的最接近的事情是为整数创建扩展方法:
public static Money Para(this int value) // you can do same for decimals
{
return (Money)((decimal)value);
}
用法:
var amount = 200.Para();