คีย์เวิร์ดแบบอ่านอย่างเดียวใช้เพื่อประกาศตัวแปรสมาชิกเป็นค่าคงที่ แต่อนุญาตให้คำนวณค่าที่รันไทม์ได้ ซึ่งแตกต่างจากค่าคงที่ที่ประกาศด้วยตัวแก้ไข 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