【发布时间】:2011-05-13 05:39:53
【问题描述】:
我正在尝试创建一个名为 LoopingInt 的类。它存储两个整数,一个是整数的最大值,另一个是存储的整数。当整数低于 0 或高于最大值时,它会“循环”回来。所以如果你给一个值为4的LoopingInt加3,最大值为6,则类内部存储的整数为7,但外部请求整数将返回0。
我想要做的是使它可以像使用整数一样使用 LoopingInts。我已经可以将 LoopingInt 分配给 int 对象(即 int x = myLoopingInt),但是我无法将 int 分配给 LoopingInt,因为我不知道如何将具有正确最大值的 LoopingInt 对象传回。我需要左侧值的最大值,但我不知道如何获取它。
【问题讨论】:
-
我将其命名为
WraparoundInt或类似名称,因为整数溢出导致值回绕的概念对于许多程序员来说都很熟悉。 -
仅供参考,您正在构建的是整数同余类的模算术系统;从而形成一个交换环。请参阅 en.wikipedia.org/wiki/Modular_arithmetic 了解可能对您有所帮助的数学背景。
-
听起来是个好主意。我会这样做的。
标签: c# operators operator-overloading overloading