目前我有这堂课
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/