variável de membro particular de acesso da classe usando seu objeto (instância)

StackOverflow https://stackoverflow.com/questions/346127

  •  19-08-2019
  •  | 
  •  

Pergunta

Aqui está um código VB.NET trecho

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

Eu pensei que não pode acessar os membros privados usando o objeto, mas talvez CLR nos permite fazer isso. Então isso significa que modificadores de acesso são baseadas no tipo e não na instância desse tipo. Eu também ouvi que c ++ também permite que ..

Qualquer adivinha o que poderia ser a razão para isso?

Editar:

Eu acho que esta linha a partir do link MSDN dada pelo RoBorg explica este comportamento "Código do tipo que declara um elemento privado, incluindo código dentro tipos contidos, pode acessar o elemento"

Foi útil?

Solução

A sua pergunta é bastante confuso, mas eu acho que já entendeu como: "Por que eu possa acessar outra instância (da minha classe) é variáveis ??privadas?"

E você está certo -. Em todas as línguas OOP eu usei você pode acessar variáveis ??privadas de outros casos, precisamente porque as permissões de acesso são baseados em onde o código é, ao invés de qual instância objeto que ele 'pertence'

Pode ser difícil de implementar construtores de cópia ou operadores de igualdade de outra forma.

Outras dicas

Aqui está a seção sobre níveis de acesso em MSDN .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top