คำสั่งก่อนคอมไพล์ ให้คำสั่งแก่คอมไพล์อร์ให้ประมวลผลข้อมูลก่อนที่การคอมไพล์จริงจะเริ่มต้น
คำสั่งก่อนคอมไพล์ทั้งหมดขึ้นต้นด้วย # และมีได้แต่ตัวอักษรเว้นวรรคก่อนคำสั่งในบรรทัดเดียวกัน ไม่ใช่คำสั่ง (statements) จึงไม่จบด้วยอاصلة (;)
คำสั่งก่อนคอมไพล์ที่พบบ่อยใน C#
| ลำดับ | คำสั่งและคำอธิบาย |
|---|---|
| 1 | #define กำหนดลำดับตัวอักษร เรียกว่า สัญลักษณ์ (symbol) |
| 2 | #undef ยกเลิกการกำหนดสัญลักษณ์ |
| 3 | #if ทดสอบสัญลักษณ์ว่าประเมินเป็น true หรือไม่ |
| 4 | #else สร้างคำสั่งเงื่อนไขร่วมกับ #if |
| 5 | #elif สร้างคำสั่งเงื่อนไขแบบต่อเนื่อง |
| 6 | #endif ระบุจุดสิ้นสุดของคำสั่งเงื่อนไข |
| 7 | #line ปรับหมายเลขบรรทัดและชื่อไฟล์ของคอมไพล์อร์สำหรับข้อผิดพลาด/คำเตือน |
| 8 | #error สร้างข้อผิดพลาดจากตำแหน่งเฉพาะในโค้ด |
ตัวอย่าง
#define PI
using System;
namespace PreprocessorDAppl {
class Program {
static void Main(string[] args) {
#if (PI)
Console.WriteLine("PI is defined");
#else
Console.WriteLine("PI is not defined");
#endif
Console.ReadKey();
}
}
}
ผลลัพธ์
PI is defined