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

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.