我可以为自定义值类型分配后缀吗?
本文关键字:后缀 分配 类型 自定义 我可以 | 更新日期: 2023-09-27 18:12:03
对于钱,我使用一个自定义值类型,它只包含一个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;
你不能在c#中分配自定义后缀。最接近的方法是为整数创建扩展方法:
public static Money Para(this int value) // you can do same for decimals
{
return (Money)((decimal)value);
}
用法:
var amount = 200.Para();