【发布时间】:2011-03-22 17:00:09
【问题描述】:
/// <summary>
/// Holds data associated with a label
/// </summary>
public class ArtworkDataLabel : ArtworkLabel
{
public string Data { get; set; }
public int ID { get; set; }
public ArtworkDataLabel()
{
this.ID = 5;
}
}
/// <summary>
/// A template label
/// </summary>
public class ArtworkLabel
{
public int ID { get; set; }
snip
}
这让我很困惑,为什么编译器允许这样做,以及正在设置哪个 ID?如何区分ID?我应该将其中一个 ID 重命名为其他名称吗?
【问题讨论】:
-
您真的需要both ID吗?如果是这样,它们不是不同的东西吗?有什么不同?这可能有助于选择更好的名称。如果它们相同,则只需要一个。
-
我发现总是打开“将警告视为错误”标志进行编译很有用;我相信这会阻止你做这样的事情 =)
标签: c# class inheritance class-design