为了赚钱,我使用的是一个自定义值类型,该类型仅包含一个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();

关于c# - 我可以为我的自定义值类型分配后缀吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24653805/

10-13 01:59