답변:
내부의 은 어셈블리 범위를위한 것입니다 (예 : 동일한 .exe 또는 .dll의 코드에서만 액세스 가능)
private 은 클래스 범위를위한 것입니다 (즉, 같은 클래스의 코드에서만 액세스 가능).
아래에서 설명을 찾으십시오. 자세한 내용은이 링크를 확인하십시오-http: //www.dotnetbull.com/2013/10/public-protected-private-internal-access-modifier-in-c.html
은밀한: -개인 회원은 자신의 유형 (자체 클래스) 내에서만 액세스 할 수 있습니다.
내부 : -내부 멤버는 상속 (파생 유형) 또는 클래스 인스턴스를 통해 어셈블리 내에서만 액세스 할 수 있습니다.
참고 :
Protected Internal
보다 더 넓은 액세스 를 제공하는 흥미로운 기능입니다 Protected
.
protected internal
으로 protected OR internal
.
With Type
뜻입니까?
AND
그 행렬을 true | false | false | false 로 행동한다고 가정했다 protected internal
. 직관적이지 않습니다. 대신 true | true | true | false OR'd
입니다.
private protected
는 그다지 직관적이지 않습니다. 자세한 내용 : docs.microsoft.com/en-us/dotnet/csharp/language-reference/…
internal
멤버는 선언 된 어셈블리의 모든 코드에서 볼 수 있습니다
(및 [InternalsVisibleTo]
속성을 사용하여 참조 된 다른 어셈블리 )
private
멤버는 선언 클래스에만 표시됩니다. (중첩 클래스 포함)
외부 (중첩되지 않은) 클래스는 private
전용으로 만들 범위가 없으므로 선언 할 수 없습니다 .
잊어 버린 질문에 대답하기 위해 protected
멤버는 private
멤버와 비슷하지만 선언 유형을 상속하는 모든 클래스에서도 볼 수 있습니다. (그러나 적어도 현재 클래스 유형의 표현식에서만)
비공개 멤버는 클래스 본문 또는 선언 된 구조체 내에서만 액세스 할 수 있습니다.
내부 유형 또는 멤버는 동일한 어셈블리의 파일 내에서만 액세스 할 수 있습니다
내부 멤버는 어셈블리 내에서 액세스 가능 (동일한 프로젝트에서만 액세스 가능)
개인 회원은 같은 클래스에서 액세스 할 수 있습니다
솔루션에는 두 개의 프로젝트 (Project1, Project2)가 있으며 Project1에는 Project2에 대한 참조가 있습니다.