6

C# でこのようなことができることに気付きました。

XNamespace c = "http://s.opencalais.com/1/pred/";

文字列値が暗黙的に別の型に変換されることに注意してください。これを行うことができる他の場所はありますか?この種のことに関する一般的なパターンと慣行は何ですか?

4

4 に答える 4

5

これは、暗黙的な変換演算子が定義されている場合に発生する可能性があります。全体として、それは非常にまれです。

于 2010-08-08T20:44:22.543 に答える
4

これは役立つはず です http://msdn.microsoft.com/en-us/library/z5z9kes2.aspx

編集: Matt ninja'd it :)

于 2010-08-08T20:45:21.803 に答える
2

驚いたことに、これを初めて見たのはC# 変換演算子に関するウィキペディアの記事でした。実際にこれを使用している人を見たことはありません。可読性が損なわれ、多くの開発者を混乱させるようです...

于 2010-08-08T20:50:41.323 に答える
1

基本的に、XNamespace は暗黙的な変換を実行する演算子を提供します。

ほとんどの常識的なガイドラインが適用されると思います。意味のある場合にのみ使用し、混乱を避けてください。最大の問題は、意図しない暗黙の変換であり、プログラミング エラーが発生する可能性があります。これを回避しても、明示的な変換演算子を使用して変換を提供できます。

暗黙的な変換演算子の代わりに明示的な変換演算子を使用したい場合の例は、浮動小数点型からの変換を可能にする整数クラスです。暗黙的な変換は、行わなければならない切り捨て/丸めを隠してしまい、ユーザーを非常に混乱させる可能性があります (おそらくバグの原因となります)。

私のコードでは、これを数回使用しました。たとえば、bool への暗黙的な変換を提供する非常に単純な検証結果構造体 (ただし、からではない) で使用しました。これにより、私はそれを行うことができましたif (result) { ... }(ただし、陪審員はこれの有用性についてまだ出ていません:))。

その使用のほとんどは、大きな整数、小数などの「単純な」データ型に使用されると思います。

于 2010-08-08T20:57:29.527 に答える