public interface ICreateTime
{
DateTime CreateTime
{
get;
set;
}
}
public abstract class EntityBase : ICreateTime
{
public EntityBase()
{
CreateTime = DateTime.Now;
}
}
{
DateTime CreateTime
{
get;
set;
}
}
public abstract class EntityBase : ICreateTime
{
public EntityBase()
{
CreateTime = DateTime.Now;
}
}
感觉起来是不是很直观呢?
但是不行,编译不能通过: 'EntityBase' does not implement interface member 'ICreateTime.CreateTime'. 这不废话嘛,我当然知道它没有实现,不然我干吗把它标记为abstract呢? 我不是想把它留到子类实现吗?
郁闷了很久之后,终于想明白了,原因就是C#中实现接口和重写基类方法的差异.再往深一点想就是C#编译器太懒,如果像Java那样自动分辨哪些方法是虚拟的,哪些不是的多方便..