-1

所以,我有一个类,我希望能够从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>?

4

1 回答 1

1

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

作为一些测试代码:

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

    static void Main() { B b = new A() // works }
}
于 2016-03-10T17:09:48.037 回答