-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 に答える