C# دستورالعمل های پیش پردازنده (Preprocessor Directives)
Preprocessor Directives به کامپایلر دستور می دهد تا قبل از شروع کامپایل، اطلاعات را پیش پردازش کند. یا به زبان دیگر اطلاعاتی برای کامپایر در مورد بخش هایی از کد , فراهم میکنه که کامپایلر قبل از شروع به کامپایل کردن اونها رو پراسس میکنه
همه دستورات پیش پردازنده با # شروع می شن (البته قبلش هر چه قدر بخاید میتونید space بزنید). Preprocessor Directivesها جز دستورات برنامه نیستند، پس با سمیکولون (;) خاتمه نمی یابند.
در سی شارپ از Preprocessor Directives برای کامپایل شرطی استفاده می شود. Preprocessor Directives باید تنها دستورالعمل روی یک خط باشد.
جدول زیر Preprocessor Directives موجود در سی شارپ را فهرست می کند
1 | #define
برای تعریف یک نماد یا سمبل استفاده میشه
|
2 | #undef
برای حذف یک نماد یا سمبل استفاده میشه
|
3 | #if
It allows testing a symbol or symbols to see if they evaluate to true
|
4 | #else
It allows to create a compound conditional directive, along with #if.
|
5 | #elif
It allows creating a compound conditional directive.
|
6 | #endif
Specifies the end of a conditional directive.
|
7 | #line
It lets you modify the compiler's line number and (optionally) the file name output for errors and warnings.
|
8 | #error
It allows generating an error from a specific location in your code.
|
9 | #warning
It allows generating a level one warning from a specific location in your code.
|
10 | #region
It lets you specify a block of code that you can expand or collapse when using the outlining feature of the Visual Studio Code Editor.
|
11 | #endregion
It marks the end of a #region block.
|
ConditionAttribute
این attribute در namespace این به آدرس System.Diagnostics قرار دارد.
از این attribute می توانیم برای کامپایل کردن متدی بر اساس شرطی از نماد ها استفاده کنیم. به طور مثال
در مثال بالا ما به کامپایلر می گوییم که اگر نماد DEBUG وجود داشت متد را کامپایل کند. (البته این مثال خیلی معنا دار نیست چون باید به فکر زمانی هم باشیم که متد کامپایل نشده است و تمام استفاده های ما از این متد به خطا خواهند خورد)