private(C# 참조)
업데이트: 2007년 11월
private 키워드는 멤버 액세스 한정자입니다. 전용 액세스는 허용도가 가장 낮은 액세스 수준입니다. 전용 멤버는 다음 예제처럼 해당 멤버가 선언되어 있는 클래스 또는 구조체의 본문 내에서만 액세스할 수 있습니다.
class Employee
{
private int i;
double d; // private access by default
}
동일한 본문에서 중첩된 형식도 이 전용 멤버에 액세스할 수 있습니다.
전용 멤버가 선언되어 있는 클래스 또는 구조체 외부에서 이 멤버를 참조하면 컴파일 타임 오류가 발생합니다.
private을 다른 액세스 한정자와 비교하려면 액세스 가능성 수준(C# 참조) 및 액세스 한정자(C# 프로그래밍 가이드)를 참조하십시오.
예제
이 예제에서 Employee 클래스에는 name과 salary라는 두 개의 전용 데이터 멤버가 포함되어 있습니다. 이들은 private 멤버이므로 멤버 메서드를 사용해야만 액세스할 수 있습니다. private 멤버에 대한 액세스를 제어할 수 있도록 GetName 및 Salary라는 public 메서드가 추가됩니다. name 멤버에는 public 메서드를 사용하여 액세스하고, salary 멤버에는 public 읽기 전용 속성을 통해 액세스합니다. 자세한 내용은 속성(C# 프로그래밍 가이드)을 참조하십시오.
class Employee2
{
private string name = "FirstName, LastName";
private double salary = 100.0;
public string GetName()
{
return name;
}
public double Salary
{
get { return salary; }
}
}
class PrivateTest
{
static void Main()
{
Employee2 e = new Employee2();
// The data members are inaccessible (private), so
// they can't be accessed like this:
// string n = e.name;
// double s = e.salary;
// 'name' is indirectly accessed via method:
string n = e.GetName();
// 'salary' is indirectly accessed via property
double s = e.Salary;
}
}
C# 언어 사양
자세한 내용은 C# 언어 사양의 다음 단원을 참조하십시오.
3.5.1 선언된 액세스 가능성
3.5.4 액세스 가능성 제약 조건
10.3.5 액세스 한정자
10.3.8.2 선언된 액세스 가능성
10.3.8.5 바깥쪽 형식의 private 및 protected 멤버 액세스