下面是一个VB.NET代码片段

Public Class OOPDemo

    Private _strtString as String

    Public Function Func(obj as OOPDemo) as boolean
      obj._strString = "I can set value to private member using a object"

    End Function

End Class

我认为我们不能访问使用对象的私有成员,但也许CLR使我们能够做到这一点。因此,这意味着访问修饰符是基于类型而不是该类型的实例。我还听说C ++也允许..

任何猜测可能是什么原因呢?

编辑:

我认为这条线从由RoBorg给出的MSDN链接解释这种行为 “代码中声明的私人元件,包括包含类型内码的类型,可以在元素”

有帮助吗?

解决方案

您的问题是相当混乱,但我想我也理解: “为什么我可以访问另一个实例的私有变量(我的类的)?”

和你是对的 - 在我用过的,你可以从其他实例访问私有变量的所有OOP语言,正是因为访问权限是基于这样的代码,而不是哪一个对象实例它“属于” <。 / p>

这可能是难以实现复制构造或相等运算否则。

其他提示

下面是关于在MSDN 访问级别的部分。

scroll top