是否有任何实际的理由为抽象类创建接口?我遇到过这样的事情:
public interface IEntity<T>
{
T Id { get; set; }
}
public abstract class BaseEntity {
}
public abstract class Entity<T> : BaseEntity, IEntity<T>
{
public virtual T Id { get; set; }
}
我真的不明白它和这段代码有什么区别,因为IEntity不是我不止一次使用的东西:
public abstract class BaseEntity {
}
public abstract class Entity<T> : BaseEntity
{
public virtual T Id { get; set; }
}
谢谢!
答案 0 :(得分:0)
由于BaseEntity
类确实添加了方法的任何属性,是的,它与接口完全不同。该接口定义了Id
类型的属性T
,该接口(契约)可以在您的应用程序的其他位置使用。
现在的基类是没用的恕我直言。
为您实现接口的基类是可用的,如下所示:
public interface IEntity<T> {
T Id { get; set; }
}
public abstract class BaseEntity<T>: IEntity<T> {
public virtual T Id { get; set; }
}
public abstract class Entity<T> : BaseEntity<T> {
// No need to implement the Id property, we already have it inherited
}
答案 1 :(得分:0)
以下是我想知道的正确答案:c# Abstract Class implementing an Interface
感谢大家的帮助。