Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ประโยชน์ของการทำเครื่องหมายฟิลด์เป็นแบบอ่านอย่างเดียวใน C # คืออะไร


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