답변:
찾고있는 모든 정보는 여기 와 여기 에서 찾을 수 있습니다 ( Reed Copsey에게 감사드립니다 ).
첫 번째 링크에서 :
네임 스페이스 내에서 직접 선언 된 클래스 및 구조체 (즉, 다른 클래스 또는 구조체 내에 중첩되지 않은 클래스)는 공개 또는 내부 일 수 있습니다. 액세스 수정자가 지정되지 않은 경우 내부가 기본값 입니다.
...
중첩 클래스 및 구조체를 포함하여 클래스 멤버 및 구조체 멤버 의 액세스 수준은 기본적으로 비공개 입니다.
...
인터페이스는 기본적으로 내부 액세스입니다.
...
대의원 은 수업과 구조체처럼 행동합니다. 기본적 으로 네임 스페이스 내에서 직접 선언되면 내부 액세스 권한이 있고 중첩시 개인 액세스 권한이 있습니다 .
두 번째 링크에서 :
다른 유형에 중첩되지 않은 최상위 유형 은 내부 또는 공개 액세스 가능성 만 가질 수 있습니다. 이러한 유형 의 기본 접근성은 internal 입니다.
그리고 중첩 유형의 경우 :
기본 멤버 접근성 멤버 ---------- ---------------------------- 열거 형 공개 개인 수업 공용 인터페이스 개인 구조
Public
입니다. Enum
회원도 있습니다 Public
. 가능성이 높기 때문에 특정 시점에서 c # 개발자가 번역하거나 읽을 수 있기 때문에 명시 적 범위를 사용하는 것이 혼란스럽지 않을 수 있습니다. 불행히도 vb.net의 코드 생성은이 작업을 수행하지 않습니다.
MSDN에서 :
최상위 유형의 다른 유형에 중첩되지 않은, 단지 수 있습니다 internal
또는 public
접근성. 이러한 유형의 기본 접근성은 internal
입니다.
출처 : 접근성 수준 (C # 참조) (12 월 (6) 일 , 2017)
기본적으로 클래스의 액세스 수정자는입니다 internal
. 즉, 동일한 어셈블리 내에서 클래스에 액세스 할 수 있습니다. 그러나 다른 어셈블리에서 클래스에 액세스하려면 공개해야합니다.
[assembly:InternalsVisibleTo("Friend1b")]
기본적으로입니다 private
. 중첩되지 않는 한 클래스는 internal
입니다.
enum members are private by default, so to use them outside the enum we should declare them as public
. 왜 책이 당신의 말과 모순되는지 설명해 주시겠습니까? 감사.