問題タブ [explicit-interface]
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# - C# - 継承のある明示的なインターフェイス?
出力:
B->こんにちは! 明示的から。
そうではありませんか?
A→こんにちは!明示的から。
明示的なキャスト (IHello) がクラス A から IHello.Hello() を呼び出さないのはなぜですか?
.net - 明示的に実装されたMethodInfoオブジェクトによって参照されているインターフェイスを特定するにはどうすればよいですか?
MethodInfo
次のように、明示的に実装されたインターフェイスメソッドを表すオブジェクトがあります。
MethodInfo
このオブジェクトをクエリして、実装するインターフェイスタイプ(Type
オブジェクトを表す)を取得するにはどうすればよいSystem.Collections.IEnumerable
ですか?このInterfaceMapping
構造は逆の操作を提供し、特定のインターフェイスを実装するタイプのオブジェクトを取得するMethodInfo
ため、機能しません。
この情報のメソッド名を明確に解析できるため、これは不自然な例であることに注意してください。できればこれは避けたいと思います。
c# - 派生クラスで使用できない C# プロパティ
何が起こっているのかわかりません。次の基本クラスがあります。
そして、私はこの派生クラスを持っています:
なぜそのエラーが発生するのですか? 「'MyNamespace.MyRow' には 'Keys' の定義が含まれていません」. どちらのクラスもMyNamespace
名前空間にあります。this.Keys
内からandにアクセスしようとbase.Keys
しましたが、どちらも機能しませんMySubRow
。Keys
プロパティをpublic
inとしてマークしようとしましMyRow
たが、「修飾子 'public' はこのアイテムには無効です」というエラーが表示されました。これは、インターフェイスを実装する必要があるためだと思います。
c# - 明示的に実装されたインターフェイスとジェネリック制約
実際のコンパイル済みコード (CallHidden1 と CallHidden2) に違いはありますか? where T : Foo と where T : Foo, IBar (Foo が IBar を実装している場合) の間に、明示的に実装されたインターフェイスメンバーにアクセスする際の他の違いはありますか?
c# - C#の明示的なインターフェイスを備えたオブジェクト初期化子
C#で明示的なインターフェイス実装を使用してオブジェクト初期化子を使用するにはどうすればよいですか?
c# - Rhino Mocks を使用してインターフェイスを明示的に実装するメソッドをスタブアウトする
Rhino Mocks を使用してインターフェイスを明示的に実装するメソッドをスタブ化するにはどうすればよいですか?
私が理解しているように、Rhino Mocks ではスタブ化されたメソッドが仮想である必要があり、明示的に実装されたインターフェイス メンバーは仮想ではありません。
c# - クラスが暗黙的にではなく明示的にIDisposableを実装するのはなぜですか?
FtpWebResponseクラスを使用していましたが、Disposeメソッドが表示されませんでした。 クラスはIDisposableを実装していることがわかりましたが、明示的に実装しているため、Disposeを呼び出す前にまずインスタンスをIDisposableにキャストする必要があります。
このようなクラスの設計者がIDisposableを明示的に実装することを選択するのはなぜですか?Anthony Pegramが言うように、この方法で行うことは、クラスを使用するたびにドキュメントを参照していない平均的な開発者のためにオブジェクトを破棄する必要があるという事実を覆い隠します。
.net - 明示的なインターフェイスの実装は IL でどのように実装されていますか?
IL での明示的なインターフェイスの実装を見てきました。Method
次のクラスのメソッド(インターフェイスIA
にはシングルMethod()
があります):
次の IL メソッド シグネチャにコンパイルされます。
私の質問は、なぜメソッド名IA.Method()
が単なるストレートではなくIL なのMethod
ですか? これは実際には何を意味し、見逃しているとなぜ機能しないのでしょうか? ECMA仕様やグーグルで何も見つかりません。
c# - 明示的なインターフェイス実装の制限
私には非常に単純なシナリオがあります。「人」は会社の「顧客」または「従業員」になることができます。
「人」は「電話」方式で電話でかけることができます。
新製品の発表や組織変更の発表など、通話のコンテキストで「人」が果たす役割に応じて、「顧客」の役割に提供された電話番号または提供された電話番号のいずれかを使用する必要があります。 「従業員」の役割。
これが状況の要約です:
しかし、このコードはコンパイルされず、エラーが発生します:
このシナリオは、C#で別の方法で実装できる可能性がありますか、それとも別のデザインを見つける必要がありますか?
もしそうなら、あなたはどのような選択肢を提案しますか?
よろしくお願いします。
c# - どのようにリストAdd(object value)を実装していませんか?
私はそれがかなり愚かであると信じています、そして私はこの種の質問をするのに少し恥ずかしいです、しかし私はまだ答えを見つけることができませんでした:
私は、実装するクラスを見ていList<T>
ますIList
。
Ilistに含まれるメソッドの1つは
List<T>
私はそれがその方法(型安全性...)を明らかにすべきではないことを理解しています、そしてそれは実際にはそうではありません。しかし、どうしてそれができるのでしょうか?mustntクラスはインターフェース全体を実装しますか?