在VB.net中,當我從列表中檢索一個值時,是否會得到該值的一個副本或對其的引用?從列表中檢索的對象是否獲取該對象的副本或對該對象的引用?
dim blah as someObject
dim listOfBlahs as list(of someObject)
listOfBlah.add(new someObject(1))
blah = listOfBlah(0)
blah.setValue = 500
listOfBlah(0)的值是否更新爲500?
在VB.net中,當我從列表中檢索一個值時,是否會得到該值的一個副本或對其的引用?從列表中檢索的對象是否獲取該對象的副本或對該對象的引用?
dim blah as someObject
dim listOfBlahs as list(of someObject)
listOfBlah.add(new someObject(1))
blah = listOfBlah(0)
blah.setValue = 500
listOfBlah(0)的值是否更新爲500?
等等將指向與listOfBlah(0)相同的內存位置。在該位置的對象上設置屬性將影響該位置的內存中的對象。如果稍後設置blah = someOtherObject,那麼listOfBlah(0)的內存位置中的對象不會受到影響,因爲有效地指向不同的對象。
這是一般的情況,但在深入討論更多,你應該看看微軟的文檔上的值類型和引用類型:http://msdn.microsoft.com/en-us/library/aa711899(v=vs.71).aspx
是,listOfBlah(0)的值更新爲500.對象是引用類型。 在您的代碼中
blah指向listOfBlah(0)對象。無論什麼值更改爲等等已更新爲listOfBlah(0)
取決於它是否爲值類型或引用類型。 – Marc 2012-02-01 02:57:51