객체(인스턴스)를 사용하여 클래스의 전용 멤버 변수에 액세스합니다.
-
19-08-2019 - |
문제
다음은 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
개체를 사용하여 private 멤버에 액세스할 수 없다고 생각했는데 아마도 CLR을 통해 그렇게 할 수 있을 것입니다.즉, 액세스 한정자는 해당 유형의 인스턴스가 아닌 유형을 기반으로 한다는 의미입니다.C++에서도 가능하다고 들었습니다..
그 이유가 무엇인지 추측할 수 있나요?
편집하다:
Roborg가 제공 한 MSDN 링크에서 나온이 라인은 "포함 된 유형 내에서 코드를 포함하여 개인 요소를 선언하는 유형의 코드에서 요소에 액세스 할 수 있습니다"라고 생각합니다.
해결책
귀하의 질문은 상당히 혼란스럽습니다. 하지만 제 생각에는 다음과 같이 이해한 것 같습니다."(내 클래스의) 다른 인스턴스의 개인 변수에 액세스할 수 있는 이유는 무엇입니까?"
그리고 당신 말이 맞습니다. 제가 사용한 모든 OOP 언어에서는 다른 인스턴스의 개인 변수에 액세스할 수 있습니다. 왜냐하면 액세스 권한은 코드가 '속해 있는' 객체 인스턴스가 아닌 코드의 위치를 기반으로 하기 때문입니다.
그렇지 않으면 복사 생성자나 같음 연산자를 구현하기 어려울 수 있습니다.
다른 팁
다음은 다음과 같습니다 MSDN의 액세스 레벨.
제휴하지 않습니다 StackOverflow