>  기사  >  백엔드 개발  >  C#의 어려움은 하나씩 분류됩니다(5): 클래스 액세스 유형

C#의 어려움은 하나씩 분류됩니다(5): 클래스 액세스 유형

黄舟
黄舟원래의
2016-12-22 14:11:301171검색

이 네 가지 범주의 차이점을 설명할 때 조립이라는 개념을 설명할 필요가 있습니다. 어셈블리(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 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.