我有一个基类和几个派生类(例如Base和ChildA : Base).每次我创建一个ChildA类的实例时,我希望它被分配一个唯一的实例编号(类似于关系数据库中的自动增量ID,但对于我在内存中的类而不是在数据库中).
我的问题类似于这个问题,但有一个明显的区别:我希望基类自动处理这个问题.对于我的每个派生类(ChildA,ChildB,ChildC等),我希望基类保持单独的计数,并在创建该派生类的新实例时增加它.
所以,我Base班上的信息可能最终看起来像这样:
ChildA,5
ChildB,6
ChildC,9
Run Code Online (Sandbox Code Playgroud)
如果我然后实例化一个新的ChildB(var instance = new ChildB();),我希望ChildB被赋予id 7,因为它从6开始.
然后,如果我实例化一个新的ChildA,我希望ChildA被分配id 6.
-
我怎样才能在Base班级的构造函数中处理这个问题?
我有一个基类和许多子类.在每个子类中,我使用对象A - 因此我将它放在基类中.因此,使用Object BI的子类的一半不会将B放在基类中.我希望我的基类包含尽可能多的功能,因此我希望基类中的方法能够"做某事"如果定义了对象B. 那有意义吗?
我可能会从错误的角度看待这个问题,我希望你能引导我朝着正确的方向前进.如果我没有充分解释这个问题,请告诉我
我试图将对象B放在基类中,但我不希望每个子类都能够使用对象B.
abstract class BaseClass
{
public Object A { get; set; }
protected virtual void SomeMethod()
{
if (!(A is null))
{
//Do thing with A
//This works fine
}
if (!(B is null))
{
//Do thing with B
//This doesnt work - But I want to it work
}
}
}
class ChildClass : BaseClass
{
public Object B { get; set; }
}
Run Code Online (Sandbox Code Playgroud) c# ×2