8

キャスト/変換がコードでいつ発生するかを視覚的に確認するのが難しいため、暗黙の演算子 (拡張メソッドを好む) は好きではありませんでした。

以下のような例があるとします。

public static implicit operator Deal(string dealAsXml)
{
    //convert the xml into Deal object
}

上記の暗黙の演算子は、Xml 形式の取引を取引オブジェクトにキャスト/変換するのに役立ちます。

通常、メソッドを右クリックすると、「Find Usages」(または Alt+F7) を使用できます。これは非常に役立ちます。暗黙の演算子に似たものはありますか?

可能な場合は Extensions メソッドを使用するもう 1 つの理由だと思います。

4

1 に答える 1

17

Resharper のようなものでできるかもしれませんが、よくわかりません。使用法を見つける必要がある場合は、貧弱な方法で行い、暗黙の演算子を削除し、再コンパイルしてエラーを見つけます。

理論的には、コンパイラが別の暗黙的な演算子を使用できる場合 (またはメソッドの「オブジェクト」型のオーバーロードに切り替える場合)、コンパイラはケースを見逃す可能性があると思いますが、私の使用法ではうまくいく傾向があります。もっと良い解決策があると確信していますが、これまでのところうまくいきました。

編集:考えてテストしました。暗黙の演算子を as としてマークする[Obsolete]と、実際には、それを使用する場所でコンパイラの警告が発生します! これにより、暗黙的な演算子を完全に削除したことを見逃してしまうような、他の有効なオーバーロードが存在するコーナー ケースがキャッチされると思います。

于 2012-05-14T14:48:17.347 に答える