對屬性進行操作的時候要注意,若屬性是一個類型,且類型中有方法的時候,使用該屬性的方法並不能更改其內容,應使用其私有字段以更改屬性:
自己認爲合理的解釋爲:
1、在使用屬性.方法的時候,首先是獲取了這個屬性GetProperty(一個方法),返回的是這個屬性的實例的副本,對此副本的操作並不能反映到其真正的私有字段上
2、參考VS錯誤:CameraPosition .X=3 屬性只是表達式,表達式不能賦值。推理到屬性僅是返回的另一個副本
CODE:
Public Property CameraPosition As Vector3 = New Vector3(1, 1, 0)
Dim x As Single = CSng((e.Location.X - LastMousePoint.X) / Me.Width) * 10
CameraPosition.Add(New Vector3(x, y, 0)) '這句不起作用
_CameraPosition.Add(New Vector3(x, y, 0))
'這句起作用