【发布时间】:2018-10-18 17:23:01
【问题描述】:
我有一个基类和几个派生类(例如Base 和ChildA : Base)。每次创建 ChildA 类的实例时,我都希望为它分配一个唯一的实例编号(类似于关系数据库中的自动增量 ID,但对于我的类在内存中而不是在数据库中)。
我的问题与this one 类似,但有一个明显的区别:我希望基类 自动处理此问题。对于我的每个派生类(ChildA、ChildB、ChildC 等),我希望基类维护一个单独的计数,并在创建该派生类的新实例时递增。
所以,我的Base 类中保存的信息最终可能会如下所示:
ChildA,5
ChildB,6
ChildC,9
如果我随后实例化一个新的 ChildB (var instance = new ChildB();),我希望 ChildB 被分配 id 7,因为它是从 6 开始的。
然后,如果我实例化一个新的 ChildA,我希望 ChildA 被分配 id 6。
-
如何在 Base 类的构造函数中处理这个问题?
【问题讨论】:
-
你已经尝试了什么?你具体卡在哪里了?
-
@SerhiiVoichyk 这不是那个的副本。另一个问题不涉及派生类
-
@SerhiiVoichyk - 几乎所有这些答案都使用单个静态变量,这在我们试图将功能放入基类的地方不起作用
-
@Mobz,更好地解释你的问题,展示你的尝试,我相信这将被重新打开
-
您能否将此信息与一些示例类一起添加到您的问题中,这些示例类显示您的类层次结构以及应该在哪里访问/定义计数器?让您更轻松地了解您的故事。
标签: c#