مشخصات مقاله
-
1730
-
0.0
-
6896
-
0
-
0
آموزش دستورالعمل پیش پردازنده در سی شارپ
کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.
آموزش دستورالعمل پیش پردازنده در سی شارپ
دستورات preprocessor عملکردهایی را به کامپایلر می دهد تا اطلاعات را قبل از اینکه اجرای واقعی شروع شود، پیش پردازش کند.
تمام دستورات preprocessor با #C داده می شوند و فقط کاراکترهای فضای سفید ممکن است قبل از یک دستور روی یک خط ظاهر شوند. دستورات preprocessor بیانیه نیستند پس با نقطه سمیکالن (;) به پایان نمی رسند.
کامپایلرهای C# دارای preprocessor مجزا نیستند، به هرحال دستورات طوری پردازش می شوند که انگار یک دستور وجود دارد. در C# دستورات preprocessor برای کمک به همگردانی مشروط استفاده می شوند. برخلاف دستورات C و C++، برای ایجاد ماکروها استفاده نمی شوند. درستور یک preprocessor باید تنها دستور روی یک خط باشد.
لیست دستورات preprocessor در C#
جدول زیر دستورات موجد در C# را لیست می کند.
|
Preprocessor Directive |
Description. |
|
#define |
ترتیبی از کاراکترها را که نماد نامیده می شوند، تعریف می کند. |
|
#undef |
به شما اجازه می دهد که یک نماد را بدون تعریف باقی بگذارید. |
|
#if |
اجازه تست کردن نماد یا نمادهایی را می دهد تا مشخص کنیم که آیا برابر درست می باشند. |
|
#else |
اجازه می دهد تا دستورات مرکب مشروط با #if ایجاد کنیم. |
|
#elif |
اجازه می دهد تا یک دستور مرکب کشروط ایجاد کنیم. |
|
#endif |
پایان یک دستور مشروطرا مشخص می کند. |
|
#line |
به شما اجازه می دهد تا تعداد خطوط کامپایلر و (به طور اختیاری) نام فایل خروجی برای خطاها و هشدارها را تعیین کنید. |
|
#error |
اجازه ی تولید خطا از یک موقعیت خاص در برنامه ی شما را می دهد. |
|
#warning |
اجازه ی تولید هشدار سطح یک از یک موقعیت خاص در برنامه ی شما را می دهد. |
|
#region |
به شما اجازه می دهد تا گروهی از کدها را مشخص کنید که می توانید در هنگام استفاده از ویژگی ترسیمVisual Studio Code Editor گسترش دهید یا جمع کنید. |
|
#endregion |
پایان یک #region block را مشخص می کند. |
#define preprocessor
به شما اجازه می دهد symbolic constants ایجاد کنید.
#define به شما اجازه می دهد تا نمادی را تعریف کنید که با استفاده از نماد به عنوان عبارتی وارد دستور #if شده و آن عبارت با درست برابر خواهد بود که ترکیب آن مانند زیر می باشد.
#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
دستورات مشروط
می توانید از دستور #if برای ایجاد دستورات مشروط استفاده کنید. دستورات مشروی برای تست برابری نماد یا نمادهایی با درستی مفید می باشند. اگر با درستی برابر باشند، کامپایلر تمام کد بین #if و دستور بعدی را ارزیابی می کند.
ترکیب برای دستور مشروط عبارت است از
#if symbol [operator symbol]...
وقتی که symbol نام نماد باشد، شما می خواهید که امتحان کنید. همچنین می توانید از true و false استفاده کنید و یا نماد را با اپراتور منفی prepend کنید.
operator symbol اپراتوری است که برای ارزیابی نماد استفاده می شود. اپراتورها می توانند هرکدام از موارد زیر باشند.
==(equality)
!=(inequality)
&&(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