關鍵詞 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# 語法和使用方式的最終來源。