다음을 통해 공유


private(C# 참조)

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

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

C# 언어 참조는 가장 최근에 릴리스된 C# 언어 버전을 문서화합니다. 또한 예정된 언어 릴리스의 공개 미리 보기 기능에 대한 초기 설명서도 포함되어 있습니다.

설명서는 언어의 마지막 세 버전 또는 현재 공개 미리 보기에서 처음 도입된 기능을 식별합니다.

팁 (조언)

C#에서 기능이 처음 도입된 시기를 찾으려면 C# 언어 버전 기록에 대한 문서를 참조하세요.

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

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

참고하십시오