1
我正在创建一小段软件,允许您在运行时添加控件。为同一类的实例创建唯一的ID和计数器
我所做的是从控件创建一个派生类,其中包括一个静态整数计数器,每次构建该类的实例时都会增加。这让我创建了一个命名约定,所以名称不会重复。例如我说
this.Name = "Label"+counter;
问题出现在我想将其存储在某种自定义序列化中。假设我创建了3个标签:Label0,Label1,Label2然后,我删除了Label1。这将导致Label0和Label2。
如果我序列化当前状态,然后加载该数据以重建状态,则创建标签将导致计数器值为1,即最后一个标签的名称“Label2” 。这意味着如果现在我想要创建另一个标签,将是“Label(counter + 1)”,即“Label2”,导致重复。
我的问题是,这是创建一个计数器的最佳方法,这个计数器的命名约定如此简单,并且会跳过重复的名称?
您应该在序列化时保存ID ... – Servy 2012-04-25 14:12:43
只有在没有现有控件(或者等价地,当您加载序列化控件时销毁所有现有控件)时才会加载序列化控件吗?否则,问题会更复杂一些,因为您还必须处理现有控件的名称与加载的控件之间的冲突。 – 2012-04-25 15:20:00
try this.Name =“Label”+ GUID(),GUID是唯一的。 – Sandeep 2012-04-25 17:11:51