我正在开发一个应用程序,其中方向(向前/向后)的概念非常重要。
问题是在整个代码库中散布着几种不同的约定:在某些地方它是真/假,而在其他地方则是 +1/-1。
为了尝试将其组合在一起,我创建了:
public class DirectionClass
{
public bool Forwards { get; set; }
public double Sign { get; set; }
public EDirection { get; set; }
//plus associated constructor overloads, implementing IEquatable, etc.
}
我现在想知道隐式转换是个好主意还是坏主意:
public static implicit operator DirectionClass(double sign);
public static implicit operator DirectionClass(bool forwards); //etc..
以及是否有我可能会遇到的经典陷阱。