C# – دستورات پیشپردازش (Preprocessor Directives)
Preprocessor Directives (دستورات پیشپردازش) به کامپایلر دستور میدهند که اطلاعات را قبل از شروع واقعی کامپایل پردازش کند.
تمام دستورهای پیشپردازش با #
(شارپ) آغاز میشوند و فقط کاراکترهای فاصلهگذاری ممکن است قبل از دستور پیشپردازش در یک خط ظاهر شوند. دستورات پیشپردازش، عبارات نیستند، بنابراین با نقطهویرگول ;
(نقطهویرگول) پایان نمییابند.
کامپایلر C# یک پیشپردازشگر جداگانه ندارد؛ با این حال، دستورات به گونهای پردازش میشوند که گویی یکی وجود دارد. در C#، دستورهای پیشپردازش برای کمک به “conditional compilation” (کامپایل شرطی) استفاده میشوند. برخلاف دستورات C و C++، آنها برای ایجاد ماکروها استفاده نمیشوند. یک دستور پیشپردازش باید تنها دستور موجود در یک خط باشد.
دستورهای پیشپردازش در C#
جدول زیر دستورهای پیشپردازش موجود در C# را لیست میکند:
1 | #define |
2 | #undef |
3 | #if |
4 | #else |
5 | #elif |
6 | #endif |
7 | #line |
8 | #error |
9 | #warning |
10 | #region |
11 | #endregion |
Preprocessor Directive define (دستور پیشپردازش تعریف)
دستور پیشپردازش #define
(تعریف) به ایجاد ثابتهای نمادین کمک میکند.
#define
(تعریف) به شما اجازه میدهد یک نماد را تعریف کنید به گونهای که با استفاده از نماد به عنوان عبارت که به دستور #if
(شرطی) ارسال میشود، عبارت به true (درست) ارزیابی میشود. نحو آن به صورت زیر است:
#define symbol
برنامه زیر این را نشان میدهد:
#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
Conditional Directives (دستورات شرطی)
شما میتوانید از دستور #if
(شرطی) برای ایجاد یک دستور شرطی استفاده کنید. دستورات شرطی برای آزمایش نمادها یا نمادها برای بررسی اینکه آیا آنها به true (درست) ارزیابی میشوند یا نه، مفید هستند. اگر آنها به true (درست) ارزیابی شوند، کامپایلر تمام کد بین #if
و دستور بعدی را ارزیابی میکند.
نحو دستور شرطی به صورت زیر است:
#if symbol [operator symbol]...
که در آن، symbol
(نماد) نام نمادی است که میخواهید آزمایش کنید. همچنین میتوانید از true (درست) و false (ناصحیح) استفاده کنید یا نماد را با عملگر نقیض (negation operator) پیشوند کنید.
عملگر نماد، عملگری است که برای ارزیابی نماد استفاده میشود. عملگرها میتوانند یکی از موارد زیر باشند:
==
(مساوی)!=
(مساوی نبودن)&&
(و)||
(یا)
همچنین میتوانید نمادها و عملگرها را با پرانتز گروهبندی کنید. دستورات شرطی برای کامپایل کد برای یک ساختار اشکالزدایی (debug build) یا هنگام کامپایل برای یک پیکربندی خاص استفاده میشوند. یک دستور شرطی که با دستور #if
(شرطی) آغاز میشود باید به طور صریح با دستور #endif
(پایان شرطی) خاتمه یابد.
برنامه زیر استفاده از دستورات شرطی را نشان میدهد:
#define DEBUG
#define VC_V10
using System;
public class TestClass {
public static void Main() {
#if (DEBUG && !VC_V10)
Console.WriteLine("DEBUG is defined");
#elif (!DEBUG && VC_V10)
Console.WriteLine("VC_V10 is defined");
#elif (DEBUG && VC_V10)
Console.WriteLine("DEBUG and VC_V10 are defined");
#else
Console.WriteLine("DEBUG and VC_V10 are not defined");
#endif
Console.ReadKey();
}
}
زمانی که کد فوق کامپایل و اجرا شود، نتیجه زیر تولید میشود:
DEBUG and VC_V10 are defined
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام