Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Ключевое private слово является модификатором доступа члена.
В этой статье рассматривается
privateдоступ. Ключевоеprivateслово также является частьюprivate protectedмодификатора доступа.
Справочные документы по языку C# описывают последнюю выпущенную версию языка C#. Она также содержит начальную документацию по функциям в общедоступных предварительных версиях для предстоящего языкового выпуска.
Документация определяет любую функцию, впервые представленную в последних трех версиях языка или в текущих общедоступных предварительных версиях.
Подсказка
Чтобы узнать, когда функция впервые появилась в C#, ознакомьтесь со статьей об истории версий языка C#.
Частный доступ — это минимальный уровень доступа. Вы можете получить доступ к частным членам только в тексте класса или структуры, в которой они объявлялись, как показано в следующем примере:
class Employee
{
private int _i;
double _d; // private access by default
}
Вложенные типы в одном теле также могут получить доступ к этим частным членам.
Если вы ссылаетесь на частный член за пределами класса или структуры, в которой вы объявляете его, компилятор возвращает ошибку.
Сравнение private с другими модификаторами доступа см. в разделе "Уровни специальных возможностей " и "Модификаторы доступа".
В этом примере Employee класс содержит два члена частных данных и _name_salary. Как частные члены, методы-члены являются единственным способом доступа к ним. В примере добавляются открытые методы с именем GetName и Salary разрешение управляемого доступа к частным членам. Член _name обращается через общедоступный метод, и _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#.