Events
Mar 17, 11 PM - Mar 21, 11 PM
Join the meetup series to build scalable AI solutions based on real-world use cases with fellow developers and experts.
Register nowThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
The private
keyword is a member access modifier.
This page covers
private
access. Theprivate
keyword is also part of theprivate protected
access modifier.
Private access is the least permissive access level. 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
}
Nested types in the same body can also access those private members.
It is a compile-time error to reference a private member outside the class or the struct in which it is declared.
For a comparison of private
with the other access modifiers, see Accessibility Levels and Access Modifiers.
In this example, the Employee
class contains two private data members, _name
and _salary
. As private members, they cannot be accessed except by member methods. Public methods named GetName
and Salary
are added to allow controlled access to the private members. 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. For more information, see Properties.
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;
}
}
For more information, see Declared accessibility in the C# Language Specification. The language specification is the definitive source for C# syntax and usage.
.NET feedback
.NET is an open source project. Select a link to provide feedback:
Events
Mar 17, 11 PM - Mar 21, 11 PM
Join the meetup series to build scalable AI solutions based on real-world use cases with fellow developers and experts.
Register now