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

#if DEBUG คืออะไรและใช้งานอย่างไรใน C #


ในโหมดดีบัก Visual Studio และโหมดรีลีสเป็นการกำหนดค่าที่แตกต่างกันสำหรับการสร้างโปรเจ็กต์ .Net ของคุณ

เลือกโหมดดีบั๊กสำหรับการดีบักทีละขั้นตอน โปรเจ็กต์ .Net และเลือกโหมดรีลีสสำหรับบิลด์สุดท้ายของไฟล์แอสเซมบลี (.dll หรือ .exe)

โหมดดีบักไม่ได้เพิ่มประสิทธิภาพไบนารีที่สร้างขึ้นเนื่องจากความสัมพันธ์ระหว่างซอร์สโค้ดและคำสั่งที่สร้างขึ้นนั้นซับซ้อนกว่า

ซึ่งช่วยให้สามารถตั้งค่าเบรกพอยต์ได้อย่างแม่นยำ และช่วยให้โปรแกรมเมอร์สามารถอ่านโค้ดทีละบรรทัดได้

การกำหนดค่าดีบักของโปรแกรมของคุณถูกคอมไพล์ด้วยข้อมูลการดีบักเชิงสัญลักษณ์ทั้งหมด ซึ่งช่วยให้ดีบักเกอร์ทราบว่ามันอยู่ที่ไหนในซอร์สโค้ด

การกำหนดค่าการเปิดตัวโปรแกรมของคุณไม่มีข้อมูลการดีบักเชิงสัญลักษณ์และได้รับการปรับให้เหมาะสมอย่างสมบูรณ์

หากต้องการเปลี่ยนการกำหนดค่าบิวด์

จากเมนูบิลด์ เลือก Configuration Manager จากนั้นเลือก Debug หรือ Release

หรือ

บนแถบเครื่องมือ เลือก Debug หรือ Release จากรายการการกำหนดค่าโซลูชัน

โค้ดที่เขียนใน #if debug จะถูกดำเนินการก็ต่อเมื่อโค้ดทำงานในโหมดดีบั๊กเท่านั้น

หากโค้ดทำงานในโหมดรีลีส #if Debug จะเป็นเท็จและจะไม่รันโค้ดที่อยู่ในนี้

ตัวอย่าง

class Program {
   static void Main() {
      #if DEBUG
      Console.WriteLine("You are in debug");
      #endif
      Console.ReadKey();
   }
}

หากโปรแกรมกำลังทำงานในโหมดดีบั๊ก บล็อก If จะคืนค่าเป็น true

และพิมพ์ว่า "You are in debug"

หากโปรแกรมไม่อยู่ในโหมดแก้ไขจุดบกพร่อง ถ้าการดีบักคืนค่าเป็นเท็จ