المفاهيم التنظيمية الرئيسية في لغة البرجمة (#C) هي البرامج ومساحات الأسماء والأنواع والأعضاء والتجمعات، تعلن البرامج عن الأنواع التي تحتوي على أعضاء ويمكن تنظيمها في مساحات الأسماء، من الأمثلة على الأعضاء الفئات (Classes) والبنى والواجهات (interfaces) والحقول والأساليب والخصائص والأحداث، عندما يتم تجميع برامج (#C)، يتم وضعها في تجميعات (assemblies)، تحتوي التجميعات (assemblies) عادةً على امتداد الملف (exe.) أو (dll.)، اعتمادًا على ما إذا كانت تقوم بتنفيذ التطبيقات أو المكتبات على التوالي.
المفاهيم التنظيمية الرئيسية في لغة السي شارب
كمثال صغير، ضع في اعتبارك تجميعًا يحتوي على الكود التالي:
;namespace Acme.Collections
public class Stack<T>
}
;Entry _top
public void Push(T data)
}
;_top = new Entry(_top, data)
{
()public T Pop
}
if (_top == null)
}
;()throw new InvalidOperationException
{
;T result = _top.Data
;_top = _top.Next
;return result
{
class Entry
}
public Entry Next { get; set; }
public T Data { get; set; }
public Entry(Entry next, T data)
}
;Next = next
;Data = data
{
{
{
شرح المفاهيم التنظيمية الرئيسية باستخدام الكود البرمجي
اسم المؤهل بالكامل لهذه الفئة هو (Acme.Collections.Stack)، تحتوي الفئة (class) على عدة أعضاء، وهي: حقل يسمى (top)، وطريقتان باسم (Push and Pop)، وفئة متداخلة تسمى (Entry) ،تحتوي الفئة (Entry) أيضًا على ثلاثة أعضاء، وهي: خاصية تسمى (Next)، وخاصية تسمى (Data)، و(constructor)، (Stack) هو ملف فئة (class) عام يحتوي على نوع واحدة (type parameter)، (T) يتم استبدالها بصفة معينة (concrete type) عند استخدامها.
(Stack) هي مجموعة (FILO) “أول ما يدخل وآخر ما يخرج” (first in – last out”) يتم إضافة عناصر جديدة إلى الجزء العلوي من(Stack)، عند إزالة عنصر، يتم إزالته من أعلى (Stack)، يوضح المثال السابق نوع (Stack) الذي يحدد طريقة تخزينه وسلوكه، يمكنك تعريف المتغير (variable) المناسب الذي يشير إلى وظيفة استخدام.
ما هي التجميعات Assemblies
تحتوي التجميعات (Assemblies) على تعليمات برمجية قابلة للتنفيذ في شكل تعليمات لغة وسيطة (IL) ومعلومات رمزية في شكل بيانات وصفية، قبل أن يتم تنفيذه، يقوم مترجم (JIT) لـ (NET Common Language Runtime) بتحويل كود (IL) في التجميع (assembly) إلى رمز خاص بالمعالج.
نظرًا لأن التجميع (assembly) عبارة عن وحدة وظيفية ذاتية الوصف تحتوي على كل من التعليمات البرمجية والبيانات الوصفية، فلا داعي لـ (include#) أي تضمين التوجيهات والملفات الرئيسية في لغة (#C)، يتم توفير الأنواع العامة (public types) والأعضاء الموجودة في تجميع معين في برنامج السي شارب ببساطة عن طريق الرجوع إلى هذا التجميع عند تجميع البرنامج.
مثال على التجميعات Assemblies
على سبيل المثال، يستخدم هذا البرنامج (class) فئة (Acme.Collections.Stack) من تجميع (acme.dll):
class Example
{
public static void Main()
{
var s = new Acme.Collections.Stack<int>();
s.Push(1); // stack contains 1
s.Push(10); // stack contains 1, 10
s.Push(100); // stack contains 1, 10, 100
Console.WriteLine(s.Pop()); // stack contains 1, 10
Console.WriteLine(s.Pop()); // stack contains 1
Console.WriteLine(s.Pop()); // stack is empty
}
}
لتنفيذ هذا البرنامج ستحتاج إلى الرجوع إلى التجميع الذي يحتوي على فئة (stack class) المحددة في المثال السابق، يمكن تخزين برامج (#C) في عدة ملفات مصدر، عندما يتم تجميع برنامج (#C)، تتم معالجة جميع ملفات المصدر معًا، ويمكن للملفات المصدر الرجوع إلى بعضها بحرية، يبدو الأمر كما لو أن جميع ملفات المصدر تم تجميعها في ملف واحد كبير قبل معالجتها، لا يوجد حاجه للإخبار مسبقاً عن نوع الملف ولكن توجد أيضاً استثناءات قليلة.