Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Słowo kluczowe private jest modyfikatorem dostępu.
W tym artykule opisano
privatedostęp. Słowoprivatekluczowe jest również częściąprivate protectedmodyfikatora dostępu.
Dokumentacja języka C# zawiera ostatnio wydaną wersję języka C#. Zawiera również początkową dokumentację dla funkcjonalności w publicznych wersjach testowych nadchodzącego wydania języka.
Dokumentacja identyfikuje dowolną funkcję po raz pierwszy wprowadzoną w ostatnich trzech wersjach języka lub w bieżącej publicznej wersji zapoznawczej.
Wskazówka
Aby dowiedzieć się, kiedy funkcja została po raz pierwszy wprowadzona w języku C#, zapoznaj się z artykułem dotyczącym historii wersji języka C#.
Dostęp prywatny jest najmniej permissive poziom dostępu. Dostęp do prywatnych elementów członkowskich można uzyskać tylko w treści klasy lub struktury, w której je deklarujesz, jak pokazano w poniższym przykładzie:
class Employee
{
private int _i;
double _d; // private access by default
}
Zagnieżdżone typy w tej samej treści mogą również uzyskiwać dostęp do tych prywatnych elementów członkowskich.
Jeśli odwołujesz się do prywatnego elementu członkowskiego poza klasą lub strukturą, w której ją deklarujesz, kompilator zwraca błąd.
Aby uzyskać porównanie private z innymi modyfikatorami dostępu, zobacz Poziomy ułatwień dostępu i modyfikatory dostępu.
W tym przykładzie Employee klasa zawiera dwa prywatne składowe danych i _name_salary. Jako prywatne elementy członkowskie metody członkowskie są jedynym sposobem uzyskiwania do nich dostępu. W przykładzie dodano metody publiczne o nazwie GetName i Salary w celu umożliwienia kontrolowanego dostępu do prywatnych elementów członkowskich. Dostęp _name do elementu członkowskiego jest uzyskiwany za pomocą metody publicznej, a _salary dostęp do elementu członkowskiego uzyskuje się za pomocą publicznej właściwości tylko do odczytu. Aby uzyskać więcej informacji, zobacz Właściwości.
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;
}
}
Specyfikacja języka C#
Aby uzyskać więcej informacji, zobacz Zadeklarowane ułatwienia dostępu w specyfikacji języka C#. Specyfikacja języka jest ostatecznym źródłem informacji o składni i użyciu języka C#.