variável de membro particular de acesso da classe usando seu objeto (instância)
-
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"
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 .