반응형
액세스 한정자 Access Modifiers
- Microsoft Doc (https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/access-modifiers]
- wiki (https://en.wikipedia.org/wiki/Access\_modifiers)
public, private, protected, internal 등이 있다.
Keyword | C# |
---|---|
private | class |
private protected | derived classes in the same assembly |
protected internal | same assembly and/or derived classes |
protected | derived classes |
internal | same assembly |
public | everybody |
출처 (https://en.wikipedia.org/wiki/Access_modifiers)
internal 쉽게 이해하기
private, protected 는 단순하다. 해당 클래스 내에서만 이용이 가능하다. protected 는 상속받은 곳에서도 이용가능하게 하는지에 대한 한정자이다. private 의 경우는 명확하게 해당 클래스에서만 이용가능하다.
문제가 되는 부분은 public 의 경우 어디까지 액세스를 한정하게 해주느냐 하는 문제가 있다. 이것에 대해 C# 에서는 internal 한정자를 지원한다. internal 한정자는 다른 어셈블리 에서는 접근 못하도록 해준다.
본문
public
- 동일한 어셈블리의 다른 코드나 해당 어셈블리를 참조하는 다른 어셈블리의 코드에서 형식이나 멤버에 액세스할 수 있습니다.
private
- 같은 클래스 또는 구조체의 코드에서만 형식 또는 멤버에 액세스할 수 있습니다.
protected
- 같은 클래스 또는 해당 클래스에서 파생된 클래스의 코드에서만 형식 또는 멤버에 액세스할 수 있습니다.
internal
- 동일한 어셈블리의 코드에서는 형식이나 멤버에 액세스할 수 있지만 다른 어셈블리의 코드에서는 액세스할 수 없습니다.
protected internal
- protected internal 형식이나 멤버가 선언된 어셈블리의 모든 코드에서 또는 다른 어셈블리의 파생 클래스 내에서 형식 또는 멤버에 액세스할 수 있습니다.
private protected
- private protected 형식이나 멤버를 선언하는 어셈블리, 같은 클래스나 해당 클래스에서 파생된 형식의 코드에서만 형식 또는 멤버에 액세스할 수 있습니다.
반응형
'개발 > C#' 카테고리의 다른 글
[C#] securitypermission(securityaction.linkdemand flags = securitypermissionflag.unmanagedcode) (0) | 2016.07.28 |
---|---|
[C#][비주얼스튜디오] nullReferenceException (0) | 2015.11.05 |
[비주얼 스튜디오] [c#] UriFormatException FileNotFoundException WebException 세 가지가 다 나오는 경우 (0) | 2015.11.04 |
[C#][Visual Studio] 메니페스트 서명 인증서를 찾을 수 없습니다 (0) | 2015.10.28 |
[C#] 새창 띄우기 (0) | 2012.10.01 |
[C#] MessageBox (0) | 2012.09.30 |