Vb.Net范围问题 - 私人领域

时间:2009-10-14 10:17:53

标签: 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._avalue 

运行时没有错误地将私有字段从一个对象实例复制到另一个对象实例。

有谁知道这是否是设计的。我的印象是私人领域只能由对象的实例访问。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

private范围与类型而非实例相关。所以,是的,这是设计的。

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