【发布时间】:2014-03-25 16:17:52
【问题描述】:
希望您能帮助理解这一点,这样做似乎很自然:
public interface IJob
{
bool started { get; set; }
}
public interface IJobManager
{
void StartJob(IJob job);
}
public class SomeJob : IJob
{
public bool started { get; set; }
public void OnlySomeJobDoesThis();
}
public class SomeJobManager : IJobManager
{
public void startJob(SomeJob job) { } // --> Error'SomeJobManager' does not implement interface member 'IJobManager.StartJob(IJob)'
}
但它不会编译,如您所见。我无法想象为什么,..只要 SomeJob 实现 IJob 接口 编译器真的不需要关心吗?
【问题讨论】:
-
那么如果我将
SomeJobManager转换为IJobManager并将我的SomeOtherJob : IJob传递给startJob,会发生什么? -
C# 区分大小写。
startJob与StartJob不同。如果您确实需要将其命名为小写,请显式实现接口。 -
旁白:命名约定有助于避免大小写问题,并有助于训练眼睛发现问题。以下是 C# 命名约定和建议的精彩总结:10rem.net/articles/…