تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس السادس والأربعون - Preprocessor Directives
#1
كاتب الموضوع : أحمد جمال

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

كثيراً خلال تصفحك للبرامج او للمشاريع الجاهزة أو حتى للادوات في برنامجك ما تعثر على الشكل التالي مثلاً :


وكنت على حد علمك تعرف انها طريقة لوضع مجموعة من الاكواد ضمن حدود معينة بحيث يتم فتحها واغلاقها بسهولة لضمان عدم التشويش لك أثناء كتابتك الكود ، إلا ان ما ستعرفه في هذا الدرس أن هذه ال Regions وخلافها هي مجموعة من ال Preprocessor Directives التي سنتعرف عليها تفصيلاً في هذا الدرس .
}}}
تم الشكر بواسطة:
#2
#region, #endregion

تستخدم عادة لتنسيق مظهر الكود في ملف cs الخاص بك كما ذكرنا سابقاً ، يمكن كتابتها بالشكل التالي مثلاً :


C#:



كود :
#region "Class Employee"
public class Employee
{
private string _name;
private string _age;
private string _salary;
public string name
{
get { return _name; }
set { _name = value; }
}
public string age
{
get { return _age; }
set { _age = value; }
}
public string name
{
get { return _salary; }
set { _salary = value; }
}
}
#endregion
vb.net:


كود :
#Region "Class Employee"
Public Class Employee

Private _name As String
Private _age As String
Private _salary As String

Public Property name() As String
Get
Return _name
End Get
Set
_name = value
End Set
End Property

Public Property age() As String
Get
Return _age
End Get
Set
_age = value
End Set
End Property

Public Property name() As String
Get
Return _salary
End Get
Set
_salary = value
End Set
End Property
End Class
#End Region
الآن يمكنك فتحها واغلاقها من الطرف ، بحيث يكون كودك منظماً بالشكل التالي مثلاً :

}}}
تم الشكر بواسطة:
#3
#if, #elif, #else, #endif

يطلق عليها اسم Conditional Code Compilation ، وتستخدم لتنفيذ اجزاء معينة من الكود في حالات معينة فقط ، فمثلاً لجعل جزء من الكود لا يعمل فقط إلا وقت ال Debug وليس في وقت ال Relase نكتب الكود بالشكل التالي :

C#:

كود :
#if DEBUG
Console.WriteLine("App directory: {0}",
Environment.CurrentDirectory);
Console.WriteLine("Box: {0}",
Environment.MachineName);
Console.WriteLine("OS: {0}",
Environment.OSVersion);
Console.WriteLine(".NET Version: {0}",
Environment.Version);
#endif

vb.net:

كود :
[FONT=Tahoma]#If DEBUG Then
Console.WriteLine("App directory: {0}", Environment.CurrentDirectory)
Console.WriteLine("Box: {0}", Environment.MachineName)
Console.WriteLine("OS: {0}", Environment.OSVersion)
Console.WriteLine(".NET Version: {0}", Environment.Version)
#End If [/FONT]


بنفس الطريقة يمكن استخدام else و elif .
}}}
تم الشكر بواسطة:
#4
#define, #undef

تستخدم لتعريف symbol معين ، مثلاً يمكنك تعريف symbol لل Debug ، او يمكنك تعريف symbol خاص بك بأي اسم ليتم استخدامه لاحقاً ، المثال التالي مثلاص لتعريف Symbol يعني ان هذا الكود يتم عمل Debug له فقط على Mono .



لاحقاً يمكنك كتابة كود بالشكل التالي :

C#:


كود :
#define DEBUG
#define MONO_BUILD
using System;
namespace PreprocessorDirectives
{
class Program
{
static void Main(string[] args)
{
#if MONO_BUILD
Console.WriteLine("Compiling under Mono!");
#else
Console.WriteLine("Compiling under Microsoft .NET");
CHAPTER 12 n INDEXERS, OPERATORS, AND POINTERS 413
#endif
}
}
}


vb.net:


كود :
#Define DEBUG
#Define MONO_BUILD
Imports System
Namespace PreprocessorDirectives
Class Program
Private Shared Sub Main(ByVal args As String())
#If MONO_BUILD Then
Console.WriteLine("Compiling under Mono!")
#Else
Console.WriteLine("Compiling under Microsoft .NET")
CHAPTER
12
Dim INDEXERS As n, OPERATORS As n, [AND] As n
POINTERS
413
#End If
End Sub
End Class
End Namespace


والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .
}}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم