دستورالعمل های پیش پردازنده در زبان سی شارپ – آموزش زبان سی شارپ

csharp preprocessor directives 4552 تصویر

دستورالعمل های پیش پردازنده در زبان سی شارپ

دستورالعمل های پیش پردازنده، دستورالعملی به کامپایلر می دهد تا قبل از کامپایل واقعی اطلاعات را پردازش کند. همه دستورالعمل های پیش پردازنده با # شروع می شوند و فقط ممکن است کاراکتر فضای خالی قبل از دستورالعمل قرار گیرد. این دستورالعمل ها به عنوان دستورات برنامه نویسی شناخته نمی شوند، بنابراین لازم نیست تا با (;) پایان یابند.

کامپایلر زبان برنامه نویسی C#، پیش پردازنده جدا ندارد. با این حال دستورالعمل های پیش پردازنده  مانند سایر دستورات پردازش می شوند. از دستورالعمل های پیش پردازنده برای انجام کامپایل شرطی استفاده می شود. دستورالعمل های پیش پردازنده، باید تنها دستور در یک خط باشند و برخلاف زبان برنامه نویسی C/C++ برای ایجاد ماکرو ها استفاده نمی شوند.

دستورالعمل های پیش پردازنده

جدول زیر دستورالعمل های پیش پردازنده موجود در زبان C# را نشان می دهد:

ردیف توضیحات
۱ #define

به منظور تعریف نماد (Symbol) استفاده می شود.

۲ #undef

به شما اجازه می دهد تا تعریف یک نماد را لغو کنید.

۳ #if

امکان بررسی تعریف شدن یا نشدن یک نماد را فراهم می کند. اگر تعریف شده باشد true باز میگرداند.

۴ #else

امکان ایجاد دستورالعمل شرطی مرکب در کنار دستورالعمل #if را فراهم می کند.

۵ #elif

امکان ایجاد دستورالعمل شرطی مرکب را فراهم می کند.

۶ #endif

مشخص کننده پایان دستورالعمل شرطی است.

۷ #line

امکان تغییر شماره خط کامپایلر و همچنین مشخص کردن نام فایل خروجی برای خطاها را فراهم می کند.

۸ #error

امکان تولید خطا در محل مشخصی از کد را فراهم می کند.

۹ #warning

امکان تولید هشدار سطح یک در محل مشخصی از کد را فراهم می کند.

۱۰ #region

امکان ایجاد منطقه ای از کد را فراهم می کند و اگر از ویرایشگر ویژوال استودیو استفاده کنید، می توانید این منظقه کد را جمع یا باز کنید.

۱۱ #endregion

نشان دهنده پایان یک بلوک #region است.

دستورالعمل #define

به منظور ایجاد نمادهای ثابت استفاده می شود. سینتکس این دستور به صورت زیر می باشد:

مثال زیر نحوه استفاده از دستورالعمل #define را نشان می دهد:

#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

دستورالعمل های شرطی

شما می توانید از دستورالعمل #if به منظور ایجاد یک دستورالعمل شرطی استفاده کنید. دستورالعمل های شرطی برای بررسی نمادها استفاده می شوند. مانند دستورات شرطی خود C# اگر نماد بررسی شده تعریف شده باشد، کدهای موجود در بلوک #if اجرا می شود و در غیر این صورت کدهای بلوک #else اجرا خواهند شد.

در زیر سینتکس دستورالعمل شرطی را مشاهده می کنید:

#if symbol [operator symbol]...

منظور از symbol، نمادی است که می خواهد بررسی شود. عملگر نماد (operator symbol)، عملگری است که برای ارزیابی کردن نماد استفاده می شود. و میتواند هر کدام از عملگر های زیر باشد:

  • == (مساوی)
  • != (نامساوی)
  • && (and)
  • || (or)

همچنین با استفاده از پرانتز می توانید، نماد و عملگر را گروه بندی کند. دستورالعمل های شرطی برای کامپایل کردن برنامه در یک پیکربندی خاص استفاده می شود (مثلا برای اشکال زادیی). دستورالعمل های شرطی شروع شده با #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

نوشته دستورالعمل های پیش پردازنده در زبان سی شارپ – آموزش زبان سی شارپ اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.

درباره نویسنده: administrator

ممکن است دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *