public
public (C# 참조)
public 키워드는 타입과 타입 멤버의 접근 한정자(access modifier)로 써요. public 접근 수준은 가장 관대한 접근 수준이에요. 아래 예시를 보면 제약 없이 public 멤버에 접근할 수 있다는 걸 바로 확인할 수 있죠.
class SampleClass
{
public int x; // No access restrictions.
}
본문
public 멤버는 제한 없이 접근할 수 있어요. 즉 어디서든 그 멤버를 읽고, 쓰고, 호출할 수 있다는 뜻이에요. 그래서 타입 외부의 코드가 필드나 메서드에 자유롭게 닿아야 할 때 public을 붙이죠.
다음 예시에서는 PointTest와 Program이라는 클래스 두 개를 선언해요. 그리고 PointTest의 public 멤버인 x와 y를 Program에서 직접 접근하고 있어요.
:::code language="csharp" source="./snippets/csrefKeywordsModifiers.cs" id="13":::
만약 public 접근 수준을 private나 protected로 바꾸면, 이런 오류 메시지를 만나게 돼요.
'PointTest.y' is inaccessible due to its protection level.
public을 private나 protected로 바꾸는 순간 외부 클래스인 Program에서는 더 이상 그 멤버에 닿지 않게 되고, 그래서 "보호 수준 때문에 접근할 수 없다"는 컴파일 오류가 나는 거예요. 이 메시지는 C#을 처음 접할 때 자주 보게 되는데, "접근 한정자가 지금 접근하려는 위치를 막고 있구나"로 받아들이면 돼요.
자세한 내용은 Access Modifiers와 Accessibility Levels를 참고하세요.
C# 언어 사양
자세한 내용은 C# Language Specification의 Declared accessibility를 확인해 보세요. 언어 사양은 C# 문법과 사용법의 가장 확실한 근거가 되는 문서예요.