Can*_*ner 7 c# inheritance interface
我有以下代码:
// IMyInterface.cs
namespace InterfaceNamespace
{
interface IMyInterface
{
void MethodToImplement();
}
}
Run Code Online (Sandbox Code Playgroud)
.
// InterfaceImplementer.cs
class InterfaceImplementer : IMyInterface
{
void IMyInterface.MethodToImplement()
{
Console.WriteLine("MethodToImplement() called.");
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码编译得很好(为什么?).但是,当我尝试使用它时:
// Main.cs
static void Main()
{
InterfaceImplementer iImp = new InterfaceImplementer();
iImp.MethodToImplement();
}
Run Code Online (Sandbox Code Playgroud)
我明白了:
Run Code Online (Sandbox Code Playgroud)InterfaceImplementer does not contain a definition for 'MethodToImplement'
即MethodToImplement从外面看不到.但是,如果我做了以下更改:
// InterfaceImplementer.cs
class InterfaceImplementer : IMyInterface
{
public void MethodToImplement()
{
Console.WriteLine("MethodToImplement() called.");
}
}
Run Code Online (Sandbox Code Playgroud)
然后Main.cs编译也很好.为什么这两者之间有区别?