private (Referencia de C#)private (C# Reference)

La palabra clave private es un modificador de acceso de miembro.The private keyword is a member access modifier.

Esta página trata sobre el modificador de acceso private.This page covers private access. La palabra clave private también forma parte del modificador de acceso private protected.The private keyword is also part of the private protected access modifier.

El acceso privado es el nivel de acceso menos permisivo.Private access is the least permissive access level. Los miembros privados solo son accesibles dentro del cuerpo de la clase o el struct en el que se declaran, como en este ejemplo: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
}

Los tipos anidados en el mismo cuerpo también pueden tener acceso a los miembros privados.Nested types in the same body can also access those private members.

Hacer referencia a un miembro privado fuera de la clase o el struct en el que se declara es un error en tiempo de compilación.It is a compile-time error to reference a private member outside the class or the struct in which it is declared.

Para obtener una comparación de private con los demás modificadores de acceso, vea Niveles de accesibilidad y Modificadores de acceso.For a comparison of private with the other access modifiers, see Accessibility Levels and Access Modifiers.

EjemploExample

En este ejemplo, la clase Employee contiene dos miembros de datos privados, name y salary.In this example, the Employee class contains two private data members, name and salary. Como miembros privados, solo pueden tener acceso a ellos los métodos de miembro.As private members, they cannot be accessed except by member methods. Los métodos públicos denominados GetName y Salary se agregan para permitir un acceso controlado a los miembros privados.Public methods named GetName and Salary are added to allow controlled access to the private members. Se tiene acceso al miembro name a través de un método público, mientras que se tiene acceso al miembro salary a través de una propiedad pública de solo lectura.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. (Para obtener más información, vea Propiedades).(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 = 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;
    }
}

Especificación del lenguaje C#C# language specification

Para obtener más información, vea la sección Accesibilidad declarada de la Especificación del lenguaje C#.For more information, see Declared accessibility in the C# Language Specification. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.The language specification is the definitive source for C# syntax and usage.

Vea tambiénSee also