在C#中,我们可以像这样重载隐式转换运算符(来自MSDN的示例):
struct Digit
{
/* ... */
public static implicit operator byte(Digit d) // implicit digit to byte conversion operator
{
/* ... */
}
}
因此,我们可以拥有一个类型,一个自定义值类型,将自己神奇地转换为另一种(不相关的)类型,从而使观众感到困惑(直到他们凝视到后台并看到隐式转换操作符为止)。
我不喜欢让任何阅读我的代码的人迷惑不解。我认为没有很多人这样做。
问题是,隐式类型转换运算符的用例是什么,它们不会使我的代码更难理解?