C#コンパイラにオブジェクトの不足している演算子オーバーロードを無視させ、実行時にそのチェックを処理する方法はありますか? int、string、ushortなどのさまざまな属性を持つ複数のオブジェクトを持つコンテナがあるため、私は尋ねます。私はそのコンテナの検索機能を作っていて、さまざまなフィールドを検索できるようにしたいと考えています。オブジェクトをオペレータXに過負荷にすることを「想定」する方法を教えてください。
私は述語とラムダ式を使用しています。
これは私が欲しいものである:IDと日付を想定し
var data = container.Retrieve(ID => (ID == 5), Date => (Date > somedate));
が
コンテナのオブジェクトのフィールドですこれは私が(それが動作する、しかし)今日何をすべきかです:
var data = container.Retrieve(ID => ((int)ID == 5), Date => ((DateTime)Date > somedate));
最初の例に比べると、余分なキャスティングがあまり良く見えません。私はそれをする必要はありません。私は代わりに実行時にこれをチェックするオプションを持っていたいと思います。
これを達成する方法はありますか?
よし見てください。 クイックアンサーに乾杯。 :) – Hallgeir
@Hallgeir:独自のオブジェクトを使用する場合、またはそれらから派生できる場合は、暗黙のキャスト演算子のオーバーロードを使用できます。これがあなたの状況に適用できるかどうかはわかりません。 – Abel