4

これは許可されていますか?そうでない場合は、暗黙的/明示的変換演算子のオーバーロードによって本質的にこれを達成できますか?"as"または "is"演算子をオーバーロードすることは可能ですか

+5

私はそのような機能を利用したコードを手に入れたくないです。 C/C++を使って、このナンセンスに属していれば残しておいてください。あなたは何を解決しようとしていますか? – spender

+0

基本型と派生型の間のキャストに与える影響について考えてみましょう。私は、誰かが知っているかもしれないし、 "as"と "is"の言葉に基づいた質問がGoogleにとって信じられないほど難しいので、私は尋ねるだろうと思った。 –

答えて

15

は、事業者が許可「と」「である」とのオーバーロードされていますか?

ない場合は、これを暗黙的/明示的な変換演算子をオーバーロードすることにより、本質的に達成することができますか?

いいえ「as」と「is」演算子は、が実際にであることを伝えます。ユーザー定義のコンバージョンには注意を払っていません。

はとオペレータ "である" "として" 上のいくつかのより多くの考えのための

http://blogs.msdn.com/b/ericlippert/archive/2009/10/08/what-s-the-difference-between-as-and-cast-operators.aspx

http://blogs.msdn.com/b/ericlippert/archive/2010/09/16/is-is-as-or-is-as-is.aspx

を参照してください。

+0

そして、なぜそれらをオーバーロードできないのですか?これは設計上の決定だったのでしょうか、それとも本当に誰も考えなかったほど愚かなのでしょうか?私は 'is 'をオーバーロードする必要は一度もありませんでしたが、私は' >> 'をオーバーロードする必要はありませんでした。 – SWeko

+2

@SWeko:機能を実装しない*理由を提供する必要はありません。機能を実装する理由*がない、またはその理由がコストを正当化しない場合、その機能は実装されません。提案された機能の魅力的なメリットは何ですか? (シフト演算子のオーバーロードの利点は、ビットシフト演算子を持つ独自のビット配列型を定義できることです。) –

+0

私はアポクリフのために釣りをしています:)その特定の機能は役に立たないよりも悪いですが、考慮される? P.S.私が機能のためにロビーにしたいのであれば、私は拡張プロパティのためにロビーをしていますが、 'is'ではオーバーロードしていません。 – SWeko

0

いいえ、演算子ではないため、それらは言語のキーワードです。

また、言語仕様のセマンティクスをどのように過負荷にするのかよく分かりません。それが唯一の偉大な悪を使用することができるように思える:)この

+6

彼らは最も確かに演算子です。彼らは片方の式ともう片方の型を取るバイナリ演算子です。 –

+0

こんにちはエリック、はい、私は彼らがもちろん運営者であることを伝えた後に気づきました。今日のコーヒーの欠如。 – Phill

関連する問題