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

本文关键字:后缀 分配 类型 自定义 我可以 | 更新日期: 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();