객체(인스턴스)를 사용하여 클래스의 전용 멤버 변수에 액세스합니다.

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

  •  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의 액세스 레벨.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top