なぜ明示的な実装は公開できないのですか?
2023-08-26 10:23:36
質問
クラス内にインターフェイスを実装したメソッドがあります。明示的な実装にしたところ、コンパイラエラーが発生しました。
The modifier 'public' is not valid for this item
なぜ
public
を付けてはいけないのでしょうか?
どのように解決するのですか?
明示的にインターフェースを実装する理由は、名前の衝突を避けるためです。その結果、これらのメソッドを呼び出す前に、オブジェクトを明示的にそのインターフェースにキャストする必要があります。
これらのメソッドはクラス上で公開されているのではなく、インターフェイスに直接結びつけられていると考えることができます。インターフェイスは非公開のメンバーを持つことができないため、常に公開となるため、public/private/protectedを指定する理由はありません。
(マイクロソフトでは に明示的なインターフェイスの実装の概要があります。 )
関連
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み] C#でenumからint値を取得する
-
[解決済み] C#がforeachで変数を再利用するのは理由があるのか?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] EqualsメソッドがオーバーライドされたときにGetHashCodeをオーバーライドすることが重要な理由は何ですか?
-
[解決済み] インターフェースと抽象クラス(一般的なOO)
-
[解決済み] インターフェースとベースクラス
-
[解決済み] C#のインターフェイス。暗黙の実装と明示の実装
-
[解決済み] Javaインターフェースでスタティックメソッドを定義できないのはなぜですか?
-
[解決済み】大文字・小文字を区別しない「Contains(string)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み】Excel "外部テーブルが期待された形式ではありません。"
-
[解決済み】C# ASP.NET使用時に「WebClientのリクエスト中に例外が発生しました。
-
[解決済み】非静的メソッドはターゲットを必要とする
-
[解決済み】ORA-01008: すべての変数がバインドされていません。これらはバインドされています。
-
[解決済み] [Solved] アセンブリ System.Web.Extensions dll はどこにありますか?
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015