我想在每次實例化新類時爲該類提供唯一標識。例如有一個名爲Foo類我想能夠做到以下在實例化時賦予類唯一標識:.Net
dim a as New Foo()
dim b as New Foo()
和將獲得一個唯一的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也是隻讀的,你應該可以在構造函數中更改只讀變量。)我認爲這也與它被共享有關。任何解決方案(希望不kludgy赫赫)或解釋爲什麼這將無法正常工作將被接受。重要的部分是我想要兩個變量(或者如果有一種方法只有一個更好,但我認爲這是不可能的)在對象初始化後是不可變的。謝謝!
你讀過這個問題了嗎?他希望_nextId只讀。 – TheSmurf 2008-09-15 15:41:45
我不知道你可以評論答案,所以忽略我的回答,這是有道理的。我打開這個開放了一下,看看是否有其他人有任何有趣的想法,但我會接受這個答案。謝謝,我不知道共享讀取只能在共享構造函數中修改。 – Nicholas 2008-09-15 15:49:01