概要
public interface IHoge { void Hoge(); } public class Hoge1 : IHoge { // 通常の実装 public void Hoge() { } } public class Hoge2 : IHoge { // 明示的なインターフェイスの実装 void IHoge.Hoge() { } } public class Program { private static void Main() { var hoge1 = new Hoge1(); hoge1.Hoge(); // OK var hoge2 = new Hoge2(); hoge2.Hoge(); // コンパイルエラー var ihoge = ( IHoge ) hoge2; ihoge.Hoge(); // OK } }
- インターフェイスを実装したいが、外部からは隠したい場合は
明示的なインターフェイスの実装が役に立つ - インターフェイスにキャストすれば外部から呼び出しはできる