অ্যাট্রিবিউটস (Attributes) মেটাডেটা (metadata) যোগ করতে ব্যবহৃত হয়, যেমন কম্পাইলার ইনস্ট্রাকশন, কমেন্ট, ডেসক্রিপশন, মেথড এবং ক্লাস সম্পর্কিত তথ্য।
এই প্রিডিফাইনড অ্যাট্রিবিউট একটি কন্ডিশনাল মেথড চিহ্নিত করে যার এক্সিকিউশন একটি নির্দিষ্ট প্রিপ্রসেসিং আইডেন্টিফায়ার (preprocessing identifier) এর ওপর নির্ভরশীল।
এটি মেথড কলের কন্ডিশন্যাল কম্পাইলেশন (conditional compilation) করতে পারে, নির্দিষ্ট ভ্যালু যেমন Debug বা Trace এর ওপর নির্ভর করে। উদাহরণস্বরূপ, ডিবাগিং সময় ভেরিয়েবলগুলোর মান ডিসপ্লে করে।
সিনট্যাক্স
[Conditional(conditionalSymbol)]
উদাহরণ
#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
নোট: #define DEBUG না থাকলে এই মেথড কলগুলো কম্পাইলারের tarafından উপেক্ষা করা হবে।