이 네 가지 범주의 차이점을 설명할 때 조립이라는 개념을 설명할 필요가 있습니다. 어셈블리(Assembly)는 간단히 컴파일 후 생성되는 .dll 또는 .exe 파일로 이해하면 되며, 네임스페이스와 비교하면 프로그램 클래스 라이브러리의 물리적 구성 형태라고 할 수 있습니다. "어셈블리"에 대해 설명합니다. 자체 빌드 번호와 포함된 모든 데이터 및 개체 유형의 세부 정보를 설명하는 메타데이터가 포함되어 있습니다." 일반적인 상황은 어셈블리에 하나 이상의 네임스페이스가 포함될 수 있다는 것입니다.
Public: 다른 클래스의 모든 메서드에 표시됩니다.
Private: 이 클래스에 정의된 멤버는 이 클래스의 메서드에서만 액세스할 수 있습니다.
Protected: 이 클래스의 멤버에만 액세스할 수 있습니다. by 이 클래스의 메서드와 이 클래스를 상속하는 클래스의 메서드는
internal: 이 클래스의 멤버는 이 클래스가 있는 어셈블리에 있는 모든 클래스의 메서드로만 액세스할 수 있습니다.
protected Internal; : protected 및 내부 .
따라서 높은 액세스 수준에서 낮은 순으로 접근 수준은 Public>protected Internal>internal>Protected>Private이어야 합니다.
클래스의 기본 수정자는 내부이고, 클래스에 있는 멤버 변수의 기본 수정자는 비공개입니다. , 네임스페이스는 public 수정자를 고려할 수 있습니다. msdn에서 언급된 또 다른 사항은 상속 클래스의 액세스 수준이 상속된 클래스의 액세스 수준보다 클 수 없다는 것입니다. 예를 들어 내부 클래스는 전용 클래스를 상속할 수 없습니다.
using System; /****************************** * Chapter:C#难点逐个击破(五) * Author:王洪剑 * Date:2010-1-15 * Blog:http://www.51obj.cn/ * Email:walkingp@126.com * Description:访问修改符 * ***************************/ namespace TestMain { public class A { public void Alert() { } } internal class B:A { internal new void Alert() { Console.WriteLine("you"); } } class Program { static void Main() { B b=new B(); b.Alert(); } } }
위 내용은 C# 난이도 하나씩(5): 클래스 접근형에 대한 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(m.sbmmt.com)를 참고해주세요!