我可以为自定义值类型指定后缀吗?

ser*_*dar 7 c# struct value-type

为了钱,我使用的自定义值类型只包含一个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;
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的项目中使用这个结构时,有时会产生歧义.而且有时候我设置的object是一个常数,应该是一个Money.现在我正在初始化对象,比如

object myObject=(Money)200;
Run Code Online (Sandbox Code Playgroud)

我可以为自定义类型指定后缀吗Money?我想用以下内容初始化对象.

object myObject=200p;
Run Code Online (Sandbox Code Playgroud)

Ser*_*kiy 7

您无法使用C#分配自定义后缀.您可以做的最接近的事情是为整数创建扩展方法:

public static Money Para(this int value) // you can do same for decimals
{
   return (Money)((decimal)value);
}
Run Code Online (Sandbox Code Playgroud)

用法:

var amount = 200.Para();
Run Code Online (Sandbox Code Playgroud)