본문 바로가기
개발/C#

C# 액세스 한정자

by 언제나초심. 2020. 2. 14.
반응형

액세스 한정자 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 형식이나 멤버를 선언하는 어셈블리, 같은 클래스나 해당 클래스에서 파생된 형식의 코드에서만 형식 또는 멤버에 액세스할 수 있습니다.
반응형