سي شارب: الفرق بين النسختين
[نسخة منشورة] | [نسخة منشورة] |
تم حذف المحتوى تمت إضافة المحتوى
←مثال "أهلاً بالعالم": توسيع |
إضافة روابط لوقت التنفيذ المشترك للغات CLR |
||
سطر 19:
|last=Cornelius}}</ref>، [[مونكي (لغة برمجة)|مونكي]]، [[نيميرل (لغة برمجة)|نيميرل]]، [[فالا (لغة برمجة)|فالا]]
|نظام_التشغيل = [[سي إل أي|البنية التحتية المشتركة للغات البرمجة (CLI)]]
|رخصة = [[
|موقع = http://msdn.microsoft.com/vcsharp
|امتداد_الملف = cs.
سطر 96:
|-
! rowspan="2" | الإصدار
! rowspan="2" | [[وقت التنفيذ المشترك للغات
! colspan="3" | توصيف اللغة
! rowspan="2" | التاريخ
سطر 232:
=== المزايا الفارقة ===
تتفرد لغة سي# عن غيرها من [[لغات برمجة]] [[إطار عمل دوت نت]] في كونها مرتبطة بشكل وثيق بمزايا البنية التحتية المشتركة للغات البرمجة (CLI)، فعلى سبيل المثال تنسب معظم الأنماط الحقيقية إلى قرائنها من أنماط القيمة {{إنج|value-types}} الموجودة في CLI. على الرغم من ذلك فإن توصيف اللغة لا يتطرق إلى متطلبات توليد الكود الخاصة [[مصرف (برمجة)|بالمصرّف]]، بمعنى أن التوصيف لا يرغم مصرف سي# على توليد كود متوافق مع [[وقت التنفيذ المشترك للغات]] (CLR) أو توليد تعليمات متوافقة مع اللغة المشتركة الوسيطة {{إنج|Common Intermediate Language}} أو أي تنسيق آخر. وهكذا يمكّن (نظرياً على الأقل) مصرّف سي# من توليد كود [[لغة الآلة]] مباشرة على غرار باقي المصرفات كمصرّف [[سي++]] ومصرّف [[فورتران]]. فيما يلي بعض من المزايا الجديرة بالاهتمام كونها تميز لغة سي# عن لغتي [[سي (لغة برمجة)|سي]] و[[سي++]] (بالإضافة إلى [[جافا (لغة برمجة)|جافا]] لدى ذكر ذلك صراحة):
* تدعم سي# التصريح الضمني عن المتحولات قوية التنميط عن طريق الكلمة المفتاحية {{كود|var}} بالإضافة إلى التصريح الضمني عن المصفوفات المنمطة عن طريق الكلمة المفتاحية متبوعة بمهيئ المجموعة.
* إن إمكانية الميتا-برمجة {{إنج|Meta Programming}} من خلال استخدام السمات {{إنج|Attributes}} هي جزءً من توصيف اللغة. توفر العديد من هذه السمات وظيفية مطابقة لتلك التي توفرها موجهات قبل التصريف المعتمدة على المنصة المدعومة من قبل [[جي.سي.سي]] و[[مايكروسوفت فيجوال سي++|فيجوال سي++]].
سطر 337:
<syntaxhighlight lang=CSharp>
static void Main()
</syntaxhighlight>يعرّف هذا السطر طريقة استاتيكية (خاصة بالصف) يتم استدعاؤها عندما يبدأ البرنامج بالتنفيذ. يستدعي [[وقت التنفيذ المشترك للغات|وقت تنفيذ دوت نت]] (CLR) الطريقة <code>Main</code>. (ملاحظة: يمكن استدعاء الطريقة <code>Main</code> كغيرها من الطرق، على سبيل المثال يمكن لطريقة أخرى من الصف <code>Program</code> استدعاء الطريقة <code>Main</code>). الكلمة المفتاحية <code>static</code> تجعل الولوج إلى الطريقة مباشرة دون الحاجة إلى إنشاء كائن من الصف <code>Program</code> ممكناً. في تطبيقات الكونسول يجب أن تكون الطريقة <code>Main</code> استاتيكية. لأنه في حال لم تكن استاتيكية عندها سيحتاج البرنامج إلى كائن من الصف <code>Program</code>، إلا أن إنشاء الكائن سيحتاج برنامجاً يقوم بإنشائه. لحل مشكلة الاعتمادية التبادلية هذه تقوم مصرفات سي# لدى تصريفها تطبيقات الكونسول بإصدار خطأ عند الفشل في إيجاد طريقة <code>Main</code> استاتيكية. الكلمة المفتاحية <code>void</code> تعني أن الطريقة <code>Main</code> لن تقوم بإعادة قيمة.<syntaxhighlight lang=CSharp>
Console.WriteLine("Hello world!");
</syntaxhighlight>
|