There are two way to implement interface in c#
Implicit
Example
interface First{
void Method();
}
interface Second
{
void Method();
}
class Common : First, Second
{
public void Method()
{
Console.WriteLine("Hello world");
}
}
In the above case both interfaces have same method name. Class which will implement it can not give different implementations to both interfaces function having same name if implicit implementation is used.
Explicit Implementation
In this kind of implementation you need to provide fully qualified name e.g.
InterfaceName.MethodName()
This is helpful to provide different implementation to the method having same name but belongs to different interfaces.
class Common : First, Second
{
public void First.Method()
{
Console.WriteLine("First interface");
}
public void Second.Method() {
Console.WriteLine("Second interface");
}
}
We can not make function virtual and abstract if explicit implementation is used where as it is possible with implicit one. For Further Detail refer to any of these books