Attribute ใช้สำหรับเพิ่มข้อมูลเมตา เช่น คำสั่งคอมไพเลอร์ คำอธิบาย เมธอด และคลาสเข้าไปในโปรแกรม
Attribute แบบ Conditional นี้ทำเครื่องหมายให้เมธอดทำงานแบบมีเงื่อนไข ขึ้นอยู่กับตัวระบุการประมวลผลล่วงหน้า (preprocessing identifier)
จะทำให้การเรียกเมธอดถูกคอมไพล์แบบมีเงื่อนไข ขึ้นอยู่กับค่าที่ระบุ เช่น DEBUG หรือ TRACE ใช้สำหรับแสดงค่าตัวแปรขณะดีบักโค้ด
ไวยากรณ์ Conditional Attributes
[Conditional(conditionalSymbol)]
ตัวอย่างการใช้งาน Conditional Attributes
#define DEBUG
using System;
using System.Diagnostics;
public class Myclass {
[Conditional("DEBUG")]
public static void Message(string msg) {
Console.WriteLine(msg);
}
}
class Test {
static void function1() {
Myclass.Message("In Function 1");
function2();
}
static void function2() {
Myclass.Message("In Function 2");
}
public static void Main() {
Myclass.Message("In Main function");
function1();
Console.ReadKey();
}
}
ผลลัพธ์
In Main function In Function 1 In Function 2