private(C# 참조)private (C# Reference)

private 키워드는 멤버 액세스 한정자입니다.The private keyword is a member access modifier.

이 페이지에서는 private 액세스를 설명합니다.This page covers private access. private 키워드는 private protected 액세스 한정자의 일부이기도 합니다.The private keyword is also part of the private protected access modifier.

private 액세스는 가장 낮은 액세스 수준입니다.Private access is the least permissive access level. private 멤버는 이 예제와 같이 선언된 클래스 또는 구조체의 본문 내에서만 액세스할 수 있습니다.Private members are accessible only within the body of the class or the struct in which they are declared, as in this example:

class Employee
    private int i;
    double d;   // private access by default

동일한 본문에 중첩된 형식도 이러한 private 멤버에 액세스할 수 있습니다.Nested types in the same body can also access those private members.

선언된 클래스 또는 구조체 외부에서 private 멤버를 참조하면 컴파일 시간 오류가 발생합니다.It is a compile-time error to reference a private member outside the class or the struct in which it is declared.

private 및 다른 액세스 한정자와 비교는 액세스 가능성 수준액세스 한정자를 참조하세요.For a comparison of private with the other access modifiers, see Accessibility Levels and Access Modifiers.


이 예제에서 Employee 클래스는 두 전용 데이터 멤버인 namesalary를 포함합니다.In this example, the Employee class contains two private data members, name and salary. private 멤버는 멤버 메서드에 의한 경우를 제외하고 액세스할 수 없습니다.As private members, they cannot be accessed except by member methods. GetNameSalary라는 public 메서드는 private 멤버에 제어된 액세스 권한을 허용하기 위해 추가됩니다.Public methods named GetName and Salary are added to allow controlled access to the private members. name 멤버는 public 메서드를 통해 액세스하고, salary 멤버는 public 읽기 전용 속성을 통해 액세스합니다.The name member is accessed by way of a public method, and the salary member is accessed by way of a public read-only property. 자세한 내용은 속성을 참조하세요.(See Properties for more information.)

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()
        var e = new Employee2();

        // The data members are inaccessible (private), so
        // they can't be accessed like this:
        //    string n =;
        //    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# language specification

자세한 내용은 C# 언어 사양선언된 내게 필요한 옵션을 참조하세요.For more information, see Declared accessibility in the C# Language Specification. C# 언어 사양은 C# 구문 및 사용법에 대한 신뢰할 수 있는 소스입니다.The language specification is the definitive source for C# syntax and usage.

참고 항목See also