問題タブ [implicit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - AC#クラスが暗黙的および明示的に1つのインターフェイスから継承できるのはなぜですか?
今日、私は1つのC#クラスが暗黙的および明示的な方法の両方で1つのインターフェイスを継承できることに気付きました。これは私を驚かせます。C#がこのように機能する場合、1つのインスタンスは、異なる方法で参照されたときに異なる動作をする可能性があります。
上記のコードが実行され、出力されます
このC#の設計は、動作の不整合を引き起こすと思います。おそらく、1つのC#クラスが暗黙的または明示的な方法で1つのインターフェイスから継承できることが必須ですが、両方を継承することはできません。
C#がそのように設計されている理由はありますか?
c# - c# で列挙型の暗黙的な変換を定義できますか?
c#で列挙型の暗黙的な変換を定義することは可能ですか?
これを達成できる何か?
そうでない場合、なぜですか?
c# - 保護されたメソッドを呼び出すために明示的なインターフェイスの実装を使用する理由
codeplexでASP.NET MVC ソース コードを参照しているときに、インターフェイスを明示的に実装するクラスが一般的であることがわかりました。明示的に実装されたメソッド/プロパティは、同じ名前の別の「保護された仮想」メソッド/プロパティを呼び出します。
例えば、
私は今、この種のプログラミングの利点が何であるかを確信しています。私にとっては、インターフェイス IHttpHandler を暗黙的に実装することを好みます。
作成者は、 MvcHandlerにパブリック プロパティIsResuableを持たせたくないだけだと思います。プロパティIsReusableは、 MvcHandlerのインスタンスがIHttpHandlerとして扱われる場合にのみ使用できます。それでも、なぜ作者がこのようにしたのかはわかりません。
このスタイルのインターフェイス実装の利点を知っている人はいますか?
c++ - コンパイラが L"" の暗黙的な型キャストに文字列ではなく bool を選択するのはなぜですか?
最近、メソッドのオーバーロードが導入されたため、アプリケーションが失敗し始めました。最後にそれを追跡すると、新しいメソッドが予想外の場所で呼び出されています。
我々は持っていた
bool 値が格納されるときに同じ文字列を使用するように変更されました (文字列の内部データ ストレージ)。
L"" の問題は、それが暗黙的にキャストされることであり、以前は std::wstring であることを喜んでいましたが、bool であることは好まれませんでした。MSVC コンパイラは文句を言ったり、警告を発したりしないので、setValue( L"empty", L"" ); することが
他の誰かが後で来て、単に setValue( L"empty", L"" ); を使用する可能性があります。この問題をもう一度追跡する必要があります。
メソッドで明示的に使用することを考えましたが、この使用法では有効なキーワードではありません。コンパイラにこれについて不平を言う、または問題を防ぐ方法はありますか? それ以外の場合は、bool を取るメソッドの名前を変更して、間違った推測ができないようにすることを考えています。
c++ - パラメータまたは戻り値の型の暗黙的な変換は C++ で優先されますか?
コードがある場合:
fのどのオーバーロードが呼び出され、その理由は?
.net - 暗黙の演算子と TypeConverters は同等ですか?
TypeConverter に対して暗黙的な演算子を実装するのは非常に簡単に思えるので、フレームワークで TypeConverters が普及しているため、それらは同等ではないと想定しています (FrameworkElement を拡張するものを参照してください)。
しかし、なぜ?string->object および object->string の暗黙的な演算子を作成し、シリアル化 (XML と XAML の両方) でそれらを利用する方がはるかに簡単ではないでしょうか?
ヤグニですか?単独責任?インターフェイスで演算子のオーバーロードを指定できないためですか?
c# - .Net の暗黙的な変換のガイドライン
ユーザー定義の暗黙的な変換を定義できる場合、定義する必要がある場合、または定義する必要がない場合の一般的なガイドラインは何ですか?
たとえば、「暗黙的な変換は情報を失うことはありません」、「暗黙的な変換は例外をスローすることはありません」、「暗黙的な変換は新しいオブジェクトをインスタンス化することはありません」などのことを意味します。最初のものは正しいと確信していますが、3 番目のものはそうではありません (または、構造体への暗黙的な変換しかできませんでした)。2 番目のものについてはわかりません。
c# - 文字列と整数、暗黙的および明示的
同僚が私にこれを尋ねた場合、私の頭が混乱した状態で、答えがありませんでした:
あなたができるのはなぜですか:
だがしかし:
を連結するときに文字列変換の暗黙のキャスト/操作がある場合、それを文字列として割り当てるときに同じではないのはなぜですか? (もちろん、演算子のオーバーロードを行わずに)
scala - Scalaでタプルをベクトルに暗黙的に変換するにはどうすればよいですか
数値のタプル (Int と double) を暗黙的にベクトル オブジェクトに変換できるようにしたいと考えています。
+ メソッドを持つ Vector クラスを想定する
私の目標は、次のコードを機能させることです。
私はそれをInt
次のように動作させることができます
しかし、double の変換を追加すると失敗します
Andri の提案に従って、ちょうど 2 倍にしようとしています
これを機能させるにはどうすればよいですか?