source

내부 vs.개인 액세스 수정자

manysource 2023. 5. 5. 09:55

내부 vs.개인 액세스 수정자

사이의 차이점은 무엇입니까?internal그리고.privateC#의 수식어에 액세스하시겠습니까?

internal은 어셈블리 범위용입니다(즉, 동일한 .exe 또는 .vmx의 코드에서만 액세스 가능).

private는 클래스 범위용입니다(, 같은 클래스의 코드에서만 액세스 가능).

아래에서 설명을 찾으십시오.자세한 내용은 이 링크를 참조하십시오. - http://www.dotnetbull.com/2013/10/public-protected-private-internal-access-modifier-in-c.html

개인: - 개인 구성원은 고유한 유형(소유 클래스) 내에서만 액세스할 수 있습니다.

내부: - 내부 멤버는 상속(파생 유형) 또는 클래스 인스턴스를 통해 어셈블리 내에서만 액세스할 수 있습니다.

여기에 이미지 설명 입력

참조:

dotnetbull - c#의 액세스 한정자란 무엇입니까?

internal구성원은 선언된 어셈블리의 모든 코드에 표시됩니다.
( 속성을 사용하여 참조되는 다른 어셈블리에도)

private멤버는 선언 클래스에만 표시됩니다.(내포된 클래스 포함)

외부(내포되지 않은) 클래스는 선언할 수 없습니다.private비공개로 할 수 있는 범위가 없기 때문입니다.

당신이 질문하는 것을 잊어버린 질문에 대답하기 위해,protected멤버들은.private멤버. 그러나 선언 형식을 상속하는 모든 클래스에도 표시됩니다. (그러나 현재 클래스 유형 이상의 식에서만 표시됨)

개인 구성원은 클래스의 본문 또는 선언된 구조 내에서만 액세스할 수 있습니다.

내부 유형 또는 구성원은 동일한 어셈블리의 파일 내에서만 액세스할 수 있습니다.

private - class/scope/compect'의 캡슐화입니다.

내부 - 어셈블리의 캡슐화.

어셈블리 내에서 내부 멤버에 액세스할 수 있음(동일 프로젝트에서만 액세스 가능)

개인 구성원은 동일한 클래스 내에서 액세스할 수 있습니다.

초보자를 위한 예

솔루션에는 2개의 프로젝트(Project1, Project2)가 있으며 Project1에는 Project2에 대한 참조가 있습니다.

  • 프로젝트 2에 작성된 공용 방법은 프로젝트 2 및 프로젝트 1에서 액세스할 수 있습니다.
  • 프로젝트 2에서 작성된 내부 방법은 프로젝트 2에서만 액세스할 수 있지만 프로젝트 1에서는 액세스할 수 없습니다.
  • Project2의 class1에 작성된 private 메서드는 동일한 클래스에서만 액세스할 수 있습니다.프로젝트 1에 없는 프로젝트 2의 다른 클래스에서는 액세스할 수 없습니다.

Internal을 사용하면 여러 비즈니스 로직 클래스 간에 데이터 액세스 정적 클래스(예: 스레드 안전을 위해)를 참조할 수 있지만, 해당 클래스를 구독하지 않고 연결 풀에서 서로에 대한 클래스/트립을 상속할 수 있으며, DAL 클래스가 공개 수준에서 액세스를 촉진하는 것을 방지할 수 있습니다.이것은 디자인과 모범 사례에 대한 수많은 배경을 가지고 있습니다.

Entity Framework는 이러한 유형의 액세스를 잘 활용합니다.

언급URL : https://stackoverflow.com/questions/3813485/internal-vs-private-access-modifiers