다음을 통해 공유


private(C# 참조)

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

이 페이지에서는 private 접근에 대해 다룹니다. private 키워드는 액세스 한정자의 private protected 일부이기도 합니다.

프라이빗 액세스는 최소 허용 액세스 수준입니다. 프라이빗 멤버는 다음 예제와 같이 선언된 클래스 또는 구조체의 본문 내에서만 액세스할 수 있습니다.

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

동일한 본문의 중첩된 형식은 해당 개인 멤버에 액세스할 수도 있습니다.

클래스 외부의 프라이빗 멤버 또는 선언된 구조체를 참조하는 것은 컴파일 시간 오류입니다.

다른 액세스 한정자와 비교 private 하려면 접근성 수준액세스 한정자를 참조하세요.

예시

이 예제에서 클래스에는 Employee 두 개의 프라이빗 데이터 멤버 _name_salary. 프라이빗 멤버는 멤버 메서드를 제외하고 액세스할 수 없습니다. 프라이빗 멤버에 대한 제어된 액세스를 허용하도록 명명 GetNameSalary 되고 추가되는 공용 메서드입니다. _name 멤버는 public 메서드를 통해 액세스되고 _salary 멤버는 공용 읽기 전용 속성을 통해 액세스됩니다. 자세한 내용은 속성참조하세요.

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# 구문 및 사용의 최종 소스입니다.

참고하십시오