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 멤버 액세스

참고 항목

개념

C# 프로그래밍 가이드

참조

C# 키워드

액세스 한정자(C# 참조)

액세스 가능성 수준(C# 참조)

한정자(C# 참조)

public(C# 참조)

protected(C# 참조)

internal(C# 참조)

기타 리소스

C# 참조