Explicitly implement an interface member : Explicit Interface Implementation « Class « C# / CSharp Tutorial






using System; 
 
interface MyInterface { 
  bool MyMethodA(int x); 
  bool MyMethodB(int x); 
} 
 
class MyClass : MyInterface { 
 
  // Explicit implementation. 
  bool MyInterface.MyMethodA(int x) { 
    if((x%2) != 0) 
       return true; 
    else 
       return false; 
  } 
 
  // Normal implementation. 
  public bool MyMethodB(int x) { 
    MyInterface o = this; // reference to invoking object 
 
    return !o.MyMethodA(x); 
  } 
} 
 
class MainClass { 
  public static void Main() { 
    MyClass ob = new MyClass(); 
    bool result; 
 
    result = ob.MyMethodB(4); 
    if(result) Console.WriteLine("4 is even."); 
 
    // result = ob.MyMethodA(4); // Error, MyMethodA not directly accessible 
 
    MyInterface iRef = (MyInterface) ob; 
    result = iRef.MyMethodA(3); 
    if(result) Console.WriteLine("3 is odd."); 
 
  } 
}
4 is even.
3 is odd.








7.34.Explicit Interface Implementation
7.34.1.Interface member hiding
7.34.2.Explicit Interface Implementation
7.34.3.Explicit interface implementation and its own implementation
7.34.4.Explicitly implement an interface member
7.34.5.Use explicit implementation to remove ambiguity