Vb.Net范围界定问题-专用字段

Vb.Net范围界定问题-专用字段,vb.net,Vb.net,我一直在研究一个类,该类有一个方法,该方法接受一个与包含该方法的类类型相同的参数 Public Class test private _avalue as integer Public Sub CopyFrom(ByVal from as test) _avalue = from._avalue End Sub End Class 在代码中使用时 a.CopyFrom(b) 实例“a”似乎对传入实例“b”和行的私有成员具有可见性 _avalue = from._a

我一直在研究一个类,该类有一个方法,该方法接受一个与包含该方法的类类型相同的参数

Public Class test
   private _avalue as integer
   Public Sub CopyFrom(ByVal from as test)
     _avalue = from._avalue
   End Sub
End Class
在代码中使用时

a.CopyFrom(b)
实例“a”似乎对传入实例“b”和行的私有成员具有可见性

_avalue = from._avalue 
将专用字段从一个对象实例复制到另一个对象实例时不会出错


有人知道这是不是故意的吗。我的印象是私有字段只能由对象的实例访问。

您正在编写类似于复制构造函数的内容

由于复制方法/函数是在同一个类中编写的,因此它可以访问自己类的任何实例的私有变量。

私有范围与类型相关,而不是与实例相关。是的,这是设计的


test
了解自身的私有部分,因此它也可以在相同类型的其他实例上使用这些部分。

感谢Fredrik,这是有意义的。