private(C# 참조)

private 키워드는 멤버 액세스 한정자입니다.

이 페이지에서는 private 액세스를 설명합니다. private 키워드는 private protected 액세스 한정자의 일부이기도 합니다.

private 액세스는 가장 낮은 액세스 수준입니다. private 멤버는 이 예제와 같이 선언된 클래스 또는 구조체의 본문 내에서만 액세스할 수 있습니다.

class Employee
{
    private int _i;
    double _d;   // private access by default
}

동일한 본문에 중첩된 형식도 이러한 private 멤버에 액세스할 수 있습니다.

선언된 클래스 또는 구조체 외부에서 private 멤버를 참조하면 컴파일 시간 오류가 발생합니다.

private 및 다른 액세스 한정자와 비교는 액세스 가능성 수준액세스 한정자를 참조하세요.

예시

이 예제에서 Employee 클래스는 두 전용 데이터 멤버인 _name_salary를 포함합니다. private 멤버는 멤버 메서드에 의한 경우를 제외하고 액세스할 수 없습니다. GetNameSalary라는 public 메서드는 private 멤버에 제어된 액세스 권한을 허용하기 위해 추가됩니다. _name 멤버는 public 메서드를 통해 액세스하고, _salary 멤버는 public 읽기 전용 속성을 통해 액세스합니다. 자세한 내용은 속성에 정의된 인터페이스의 private C++ 관련 구현입니다.

class Employee2
{
    private readonly string _name = "FirstName, LastName";
    private readonly double _salary = 100.0;

    public string GetName()
    {
        return _name;
    }

    public double Salary
    {
        get { return _salary; }
    }
}

class PrivateTest
{
    static void Main()
    {
        var 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# 언어 사양선언된 내게 필요한 옵션을 참조하세요. 언어 사양은 C# 구문 및 사용법에 대 한 신뢰할 수 있는 소스 됩니다.

참고 항목