سي شارب: الفرق بين النسختين

[نسخة منشورة][نسخة منشورة]
تم حذف المحتوى تمت إضافة المحتوى
إضافة روابط لوقت التنفيذ المشترك للغات CLR
سطر 19:
|last=Cornelius}}</ref>، [[مونكي (لغة برمجة)|مونكي]]، [[نيميرل (لغة برمجة)|نيميرل]]، [[فالا (لغة برمجة)|فالا]]
|نظام_التشغيل = [[سي إل أي|البنية التحتية المشتركة للغات البرمجة (CLI)]]
|رخصة = [[سي إل آر|وقت التنفيذ المشترك للغات البرمجة (CLR)]] احتكاري. مصرف [[مونو (برمجة)|مونو]] مرخص تحت رخصتين [[رخصة_جنو_العمومية#الإصدار 3|جي بي إل الإصدار 3]] و[[رخصة_إم_إي_تي|إم آي تي/إكس 11]] أما المكتبات البرمجية فهي تحت رخصة [[رخصة_جنو_العمومية_الصغرى|إل جي بي إل الإصدار 2]]. [[دوت جنو]] مرخص تحت رخصتين [[رخصة_جنو_العمومية|جي بي إل]] و[[رخصة_جنو_العمومية_الصغرى|إل جي بي إي الإصدار 2]]
|موقع = http://msdn.microsoft.com/vcsharp
|امتداد_الملف = cs.
سطر 96:
|-
! rowspan="2" | الإصدار
! rowspan="2" | [[وقت التنفيذ المشترك للغات البرمجة (CLR)|سي إل آر]]<ref name="clr">{{cite web|url=http://msdn.microsoft.com/en-us/library/8bs2ecf4%28v=vs.110%29.aspx|title=وقت التنفيذ المشترك للغات البرمجة (بالإنجليزية)|accessdate=15 كانون الأول 2013|version=.NET Framework 4.5|publisher=مايكروسوفت|website=[[شبكة مطوري مايكروسوفت]]}}</ref>
! 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>