Я пытаюсь реализовать класс BaseEntity
в c#, и я нашел пример, подобный этому:
public abstract class BaseEntity<T> : IBaseEntity<T>
{
public T Id { get; set; }
object IBaseEntity.Id
{
get { return Id; }
}
public bool IsValid { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime ModifiedDate { get; set; }
}
Мне интересно, почему этот пример наследуется от интерфейса IBaseEntity
, действительно ли это было нужно?
Что на самом деле делает этот кусок кода?
object IBaseEntity.Id
{
get { return Id; }
}
Это действительно сбивает меня с толку ..
Не могу Разве это не должно быть написано просто так:
public abstract class BaseEntity<T>
{
public T Id { get; set; } // I guess this "T" means that this id might be of different type? like long, guid, int?
public bool IsValid { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime ModifiedDate { get; set; }
}
Полагаю, это можно было бы написать так, как в последнем примере, но первый пример более полезен? Но я не могу понять, почему, поскольку я действительно новичок.
Если бы кто-то мог мне это объяснить, я бы оценил это так сильно!
Заранее спасибо!