คีย์เวิร์ดแบบอ่านอย่างเดียวใช้เพื่อประกาศตัวแปรสมาชิกเป็นค่าคงที่ แต่อนุญาตให้คำนวณค่าที่รันไทม์ได้ ซึ่งแตกต่างจากค่าคงที่ที่ประกาศด้วยตัวแก้ไข const ซึ่งต้องตั้งค่าไว้ที่เวลารวบรวม เมื่อใช้อ่านอย่างเดียว คุณสามารถตั้งค่าของฟิลด์ได้ทั้งในการประกาศ หรือในตัวสร้างของวัตถุที่ฟิลด์นั้นเป็นสมาชิก
ตัวแก้ไข 'อ่านอย่างเดียว' สามารถใช้ได้ในบริบททั้งหมดสี่บริบท:
-
ประกาศภาคสนาม
-
การประกาศโครงสร้างแบบอ่านอย่างเดียว
-
คำจำกัดความของสมาชิกแบบอ่านอย่างเดียว
-
Ref read only method return
เมื่อเราใช้บริบทการประกาศฟิลด์ เราจำเป็นต้องรู้ว่างานจะเกิดขึ้นได้เพียงครั้งเดียวเมื่อมีการประกาศหรือเมื่อมีการเรียกใช้ตัวสร้างของคลาสเดียวกัน
ตัวอย่าง
class Program{
readonly string Name;
public Program(){
Name = "Name";
}
static void Main(string[] args){
Program a = new Program();
System.Console.WriteLine(a.Name);
Console.ReadLine();
}
} ผลลัพธ์
Name
โครงสร้างแบบอ่านอย่างเดียว
public readonly struct Server{
public readonly string Name;
public Server(string name){
Name = name;
}
}
class Program{
static void Main(string[] args){
Server a = new Server("Domain Controller");
System.Console.WriteLine(a.Name);
Console.ReadLine();
}
} ผลลัพธ์
Domain Controller