我正在创建一个小软件,可让您在运行时添加控件。
我所做的是从控件创建一个派生类,其中包括一个静态整数计数器,每次构造该类的实例时该计数器都会增加。这让我可以创建一个命名约定,这样名称就不会重复。例如我说
this.Name = "Label"+counter;
当我想将其存储在一种自定义序列化中时,问题就来了。假设我创建了 3 个标签:Label0、Label1、Label2,然后我删除了Label1。这将导致拥有Label0 和 Label2。
如果我序列化当前状态,然后我加载该数据以重建状态,标签的创建将导致计数器的值为 1,即最后一个标签的名称"Label2"。这意味着如果现在我想创建另一个标签,将是"Label(counter+1)",即"Label2",导致重复。
我的问题是,这是创建一个计数器的最佳方法,它会产生一个如此简单的命名约定并跳过重复的名称?