C#で異なる型の比較をoperator==で記述したい
C#のoperator==演算子をoverrideして異なる型同士の比較を行いたいと考えています。
サンプルは下記になります。
https://gist.github.com/seijiro/0e3c63e21a250321da16ecfe9143978b
// Some(hoge)とhogeは同じオブジェクト
void Func(IOption<Hoge> opt, Hoge hoge){
opt == hoge; // true になるようにしたい
}
暗黙型変換で対応しようと考えましたがInterfaceにキャストできずに断念しました。
どのようにすれば上記のような演算子を実装できますでしょうか。