目前我有这堂课

public class Currency
{
    private int _Amount;
    public Currency(){... }
    public Currency(int amount){_Amount = amount;}

    public override string ToString()
    {
        return _Amount + " Gold.";
    }
}


我希望此类具有整数的所有功能,因此我可以做这样的事情

Currency curr = new Currency();
Currency curr2 = new Currency(100);
curr = 50;
curr += 50;
curr += curr2;


我在这里找到了我需要的东西:Integer c++ wrapper
但这是针对C ++的。有人可以告诉我如何在C#中执行此操作吗?

public operator Currency() { return _Amount; }


不起作用,也不在任何地方添加隐式/显式。

最佳答案

class Currency
{
    ...


    // User-defined conversion from Digit to double
    public static implicit operator int(Currency d)
    {
        return d._Amount;
    }
}


有关更多信息,请参见implicit (C# Reference)。您要检查的第二件事是operator overloading

关于c# - C#装箱/包装-自定义类充当整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26829414/

10-13 08:11