顧名思義,只讀字段,就是說在程序運行過程中,程序中可以讀取這個字段的值,而不能修改它的值。在C#中可以使用readonly關鍵詞來定義一個只讀字段。
在C#中使用只讀字段主要有以下幾個要點:
(1)只讀字段可以在定義的同時賦值或者在類的構造方法中給其賦值;
(2)除了構造方法外,其他地方不可以修改只讀字段的值;
(3)只讀字段的屬性只能有get訪問器,不能有set,這是顯而易見的;
只讀字段與常量的區別
常量(使用const關鍵字定義)只能在聲明的同時初始化(賦值)。
readonly 字段可以在聲明或構造函數中初始化。 因此,根據所使用的構造函數,readonly 字段可能具有不同的值。
只讀字段使用舉例:
class Student
{
readonly string studentId;
string studentName;
public Student(string sId) //在構造函數中初始化只讀字段
{
this.studentId = sId;
}
public Student(string sId, string sName) //另外一個構造函數
{
studentId = sId; studentName = sName;
}
public void PrintInfo() //普通方法
{
Console.WriteLine("學號:{0}", sId);
Console.WriteLine("姓名:{0}", sName);
}
public string StudentId //屬性
{
get{ return this.sId;}
set{ sId = value;} //錯誤,只讀字段不能有set
}
}
從上面的例子中可以看出,在不同的實例中只讀字段的值可以不同。也可以在多個構造函數中設置只讀字段的值。
新聞熱點
疑難解答