【发布时间】:2010-09-09 00:08:04
【问题描述】:
我想在每次实例化一个新类时给一个类一个唯一的 ID。例如,对于一个名为 Foo 的类,我希望能够执行以下操作
dim a as New Foo()
dim b as New Foo()
a 将获得唯一的 ID,b 将获得唯一的 ID。 ids 只需要在运行时是唯一的,所以我只想使用一个整数。我找到了一种方法来做到这一点,但是(这是警告)我不希望能够从任何地方更改 ID。我目前对实现此方法的想法如下:
Public Class test
Private Shared ReadOnly _nextId As Integer
Private ReadOnly _id As Integer
Public Sub New()
_nextId = _nextId + 1
_id = _nextId
End Sub
End Class
但是这不会编译,因为它会引发错误 _nextId = _nextId + 1 我不明白为什么这会是一个错误(因为 _Id 也是只读的,你应该能够在构造函数中更改只读变量。)我认为这也与共享它有关。任何解决方案(希望不是笨拙的呵呵)或解释为什么这不起作用都会被接受。重要的部分是我希望这两个变量(或者如果有一种方法只有一个更好,但我认为这是不可能的)在对象初始化后是不可变的。谢谢!
【问题讨论】: