IT

C # 클래스 및 멤버 (필드, 메서드 등)에 대한 기본 가시성

lottoking 2020. 6. 11. 08:12
반응형

C # 클래스 및 멤버 (필드, 메서드 등)에 대한 기본 가시성


C #의 다양한 측면에 대한 기본 가시성에 대한 참조를 찾으려고합니다. 클래스 타입, 필드, 메소드, 열거 형 등

누군가 기본 목록과 함께이 목록을 제공 할 수 있습니까 (예 : 접두사 수정 자 없음)?


찾고있는 모든 정보는 여기여기 에서 찾을 수 있습니다 ( Reed Copsey에게 감사드립니다 ).

첫 번째 링크에서 :

네임 스페이스 내에서 직접 선언 된 클래스와 구조체 (즉, 다른 클래스 나 구조체 내에 중첩되지 않은 클래스)는 공개 또는 내부 일 수 있습니다. 액세스 수정자가 지정되지 않은 경우 내부가 기본값 입니다.

...

중첩 클래스 및 구조체를 포함하여 클래스 멤버 및 구조체 멤버 의 액세스 수준은 기본적으로 비공개 입니다.

...

인터페이스는 기본적으로 내부 액세스입니다.

...

대의원 은 수업과 구조체처럼 행동합니다. 기본적 으로 네임 스페이스 내에서 직접 선언되면 내부 액세스 권한이 있고 중첩시 개인 액세스 권한이 있습니다 .


두 번째 링크에서 :

다른 유형에 중첩되지 않은 최상위 유형 은 내부 또는 공개 액세스 가능성 만 가질 수 있습니다. 이러한 유형기본 접근성은 internal 입니다.

그리고 중첩 유형의 경우 :

기본 멤버 접근성 멤버
---------- ----------------------------
열거 형 공개
개인 수업
공용 인터페이스
개인 구조

MSDN에서 :

최상위 유형의 다른 유형에 중첩되지 않은, 단지 수 있습니다 internal또는 public접근성. 이러한 유형의 기본 접근성은 internal입니다.


다른 유형의 멤버 인 중첩 유형 은 다음 표에 표시된대로 접근성을 선언 할 수 있습니다.

기본 중첩 멤버 접근성 및 허용 된 접근성 수정 자

출처 : 접근성 수준 (C # 참조) (12 월 (6) , 2017)


기본적으로 클래스의 액세스 수정자는입니다 internal. 즉, 동일한 어셈블리 내에서 클래스에 액세스 할 수 있습니다. 그러나 다른 어셈블리에서 클래스에 액세스하려면 공개해야합니다.


기본적으로입니다 private. 중첩되지 않는 한 클래스는 internal입니다.

참고 : https://stackoverflow.com/questions/3763612/default-visibility-for-c-sharp-classes-and-members-fields-methods-etc

반응형