如何通过将转换运算符添加到 ThisType 来创建从 ThatType 到 ThisType 的显式转换

How can I create an explicit conversion from ThatType to ThisType by adding the conversion operator to ThisType

所以,我有一个 class,我希望能够从 ThatType 显式转换为 ThisTypes。明确地从 ThisType 转换为 ThatType 非常简单,只是...

public static explicit operator ThatType (ThisType operand)
{
   return /*Some voodoo that creates a new ThatType logically equivalent to ThisType*/
}

可能只有我一个人,但我看不出有什么立即相反的方法。我想使用 ThatType 并将其显式转换为 ThisType。我可以在修改 ThisType 时执行此操作,还是必须有权访问 ThatType 的代码?如果是后者,是不是不可能从 ThatTypeThatType 的显式转换是由库提供的,比如 Dictionary< T,T>?

您不需要访问代码。切换 ThatType 和 ThisType(因此 ThatType 是参数)允许您定义运算符。

作为一些测试代码:

class A { ... }
class B {
    static implicit operator B (A operand) { ... }

    static void Main() { B b = new A() // works }
}