我发现了一些我不太懂的东西.
我有一个项目,我有一个内部接口.实现该接口的类也是内部的.在接口的实现中,我制作了我实现的所有成员,内部.我没有做一个明确的实现.
我有两个接口和两个类来实现这些工作正常的接口.
它看起来像这样:
internal interface IA
{
void X();
}
Run Code Online (Sandbox Code Playgroud)
然后
internal class CA : IA
{
internal void X()
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
这适用于前面提到的两个类.但是当我尝试用另一个接口和类做它时,它不起作用.事实上,对于上面的例子,我得到错误:
'WindowsFormsApplication1.CA'没有实现接口成员'WindowsFormsApplication1.IA.X()'.'WindowsFormsApplication1.CA.X()'无法实现接口成员,因为它不是公共的.
我意识到我可以将方法公开或者做一个显式的实现(并省略内部和公共修饰符),但我只是混淆为什么它适用于它使用的两个类,但我似乎无法复制它在其他地方.
对代码进行一些屠杀(因为它是保密的),这是我项目中实际工作的代码之一.
internal interface IScanner
{
void SetHardware(Hardware hardware);
void Start();
void PauseScan();
void ResumeScan();
void Stop();
bool InScan { get; }
event ScanCompleteHandler ScanComplete;
}
Run Code Online (Sandbox Code Playgroud)
然后我上课了:
internal class MyScanner : IScanner
{
internal void SetHardware(Hardware hardware)
{
...
}
internal void Start()
{
...
}
internal void Stop()
{
...
}
internal …Run Code Online (Sandbox Code Playgroud)