Вы, вероятно, обнаружите, если построите его, у вас есть предупреждение, которое указывает, что у вас есть один член, который «скрывает», или «скрывает» другого, но я не думаю (по умолчанию, по крайней мере), он будет отмечен какошибка жесткого компилятора.
Чтобы включить этот сценарий, чтобы не было путаницы, вы должны пометить свойство ID в базовом классе как «виртуальное», а в подклассе «переопределить» его:
public class ArtworkDataLabel : ArtworkLabel
{
public string Data { get; set; }
public override int ID { get; set; }
public ArtworkDataLabel()
{
this.ID = 5;
}
}
public class ArtworkLabel
{
public virtual int ID { get; set; }
}