1. ホーム
  2. c#

なぜ明示的な実装は公開できないのですか?

2023-08-26 10:23:36

質問

クラス内にインターフェイスを実装したメソッドがあります。明示的な実装にしたところ、コンパイラエラーが発生しました。

The modifier 'public' is not valid for this item

なぜ public を付けてはいけないのでしょうか?

どのように解決するのですか?

明示的にインターフェースを実装する理由は、名前の衝突を避けるためです。その結果、これらのメソッドを呼び出す前に、オブジェクトを明示的にそのインターフェースにキャストする必要があります。

これらのメソッドはクラス上で公開されているのではなく、インターフェイスに直接結びつけられていると考えることができます。インターフェイスは非公開のメンバーを持つことができないため、常に公開となるため、public/private/protectedを指定する理由はありません。

(マイクロソフトでは に明示的なインターフェイスの実装の概要があります。 )