对属性进行操作的时候要注意,若属性是一个类型,且类型中有方法的时候,使用该属性的方法并不能更改其内容,应使用其私有字段以更改属性:
自己认为合理的解释为:
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))
'这句起作用
阐述了在编程中使用属性方法与直接操作私有字段的区别及原因,通过实例展示了属性仅提供副本,无法直接修改内容,强调了理解属性内部实现机制的重要性。
1744

被折叠的 条评论
为什么被折叠?



