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

[نسخة منشورة][نسخة منشورة]
تم حذف المحتوى تمت إضافة المحتوى
JarBot (نقاش | مساهمات)
بوت:الإبلاغ عن رابط معطوب أو مؤرشف V3.3
سطر 36:
|التاريخ= 7 أيلول 2007
|تاريخ الوصول= 15 كانون الأول 2013
| مسار الأرشيف = https://web.archive.org/web/20090306073219/http://jameskovacs.com:80/blog/CNETHistoryLesson.aspx | تاريخ الأرشيف = 6 مارس 2009 }}</ref>. تتشابه هذه التسمية مع اسم لغة ++C حيث تشير "++" إلى وجوب زيادة المتحول بمقدار 1. يشبه الرمز ♯ شكلاً من أربع إشارات "+" (في شبكة 2x2) بما يعني ضمناً أن هذه اللغة هي زيادة بمقدار 1 على لغة ++C.
 
تم اختيار [[شباك (رمز)|رمز الشباك]] ([[يونيكود|رمز اليونيكود]] U+0023) لتمثيل رمز شارب في كتابة اسم اللغة عوضاً عن الرمز ♯ ([[يونيكود|رمز اليونيكود]] U+266F) بسبب قيود تقنية تمنع من إظهاره (كافتقار دعم الخطوط القياسية وبعض المتصفحات للرمز ♯) كذلك عدم وجوده على لوحة المفاتيح القياسية.اتبع هذا التقليد أيضاً في معيار توصيف اللغة ECMA 334 <ref name="ECMA-334"/>. على كل الأحوال تستخدم مايكروسوفت الرمز الموسيقي الصحيح عندما يمكنها عملياً القيام بذلك (على سبيل المثال في الحملات الدعائية أو على غلاف المنتج<ref>{{مرجع ويب
سطر 45:
|التنسيق= JPEG
|تاريخ الوصول= 15 كانون الأول 2013
| مسار الأرشيف = https://web.archive.org/web/20160921023739/http://www.microsoft.com/presspass/images/gallery/boxshots/web/visual-c-sharp03.jpg | تاريخ الأرشيف = 21 سبتمبر 2016 | وصلة مكسورة = yes }}</ref>). استُخدمت اللاحقة "شارب" في عدد من لغات دوت نت المبنية على لغات أخرى بما فيها لغة [[جي شارب]] (لغة دوت نت صممتها مايكروسوفت بالاشتقاق من لغة [[جافا]] 1.1) ولغة [[إيه شارب]] (مشتقة من لغة [[أيدا (لغة برمجة)|أيدا]]) ولغة البرمجة الوظيفية [[إف شارب (لغة برمجة)|إف شارب]]. أطلق على التحقيق الأصلي من لغة آيفل الخاص بدوت نت اسم آيفل شارب إلا أنه تم التخلي عن هذا الاسم بعد دعم آيفل بشكل كامل. استُخدمت هذه اللاحقة أيضاً في تسمية بعض [[مكتبة برمجية|المكتبات]] مثل Gtk شارب (تغليف دوت نت لمكتبة [[جتك+|+Gtk]] ومكتبات [[جنوم]] أخرى) ومكتبة كوكوا شارب (تغليف مكتبة [[كوكوا]]).
 
== تاريخ اللغة ==
سطر 68:
|-
! rowspan="2" | الإصدار
! rowspan="2" | [[وقت التنفيذ المشترك للغات|سي إل آر]]<ref name="clr">{{مرجع ويب|المسار=http://msdn.microsoft.com/en-us/library/8bs2ecf4(v=vs.110).aspx|العنوان=وقت التنفيذ المشترك للغات البرمجة (بالإنجليزية)|تاريخ الوصول=15 كانون الأول 2013|version=.NET Framework 4.5|الناشر=مايكروسوفت|الموقع=[[شبكة مطوري مايكروسوفت]]| مسار الأرشيف = https://web.archive.org/web/20170130175617/https://msdn.microsoft.com/en-us/library/8bs2ecf4(v=vs.110).aspx | تاريخ الأرشيف = 30 يناير 2017 }}</ref>
! colspan="3" | توصيف اللغة
! rowspan="2" | التاريخ
سطر 152:
|+ ملخص عن الإصدارات
|-
! !! سي# 2.0 !! سي# 3.0 !! سي# 4.0 !! سي# 5.0 !! سي# 6.0 <ref>{{مرجع ويب|الأخير=هايلسبرغ|الأول=أندرس|العنوان=الاتجاهات المستقبلية للغة سي# وفيجوال بيسك (بالإنجليزية)|المسار=http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-816T|العمل=المصمم الرئيسي للغة سي#|الناشر=القناة 9|تاريخ الوصول=15 كانون الأول 2013| مسار الأرشيف = https://web.archive.org/web/20190227231727/https://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-816T | تاريخ الأرشيف = 27 فبراير 2019 }}</ref> !! المستقبل سي# 7.0
|-
!المزايا المضافة
سطر 262:
التعليب {{إنج|Boxing}} هو عملية تحويل كائن من نوع نمط القيمة إلى القيمة الموافقة كنمط مرجعي<ref name="insidecsharpp2ch4"/> وهو أحد العمليات الضمنية في لغة سي#.
 
فك التعليب {{إنج|Unboxing}} هو عملية تحويل قيمة كائن من نوع نمط مرجعي (معلّب مسبقاً) إلى القيمة الموافقة كنمط القيمة<ref name="insidecsharpp2ch4"/>. يتطلب فك التعليب قسراً صريحاً للنمط. إذا كان الكائن المعلب من النمط {{كود|T}} يمكن عندها فك تعليب هذا الكائن فقط إلى النمط {{كود|T}} (أو إلى النمط {{كود|<Nullable<T}})<ref>{{مرجع ويب|الأخير=ليبرت |الأول=إريك |المسار=http://blogs.msdn.com/b/ericlippert/archive/2009/03/19/representation-and-identity.aspx |العنوان=التمثيل والمحددات (بالإنجليزية) |العمل=مغامرات رائعة في كتابة الكود|الناشر=Blogs.msdn.com |التاريخ=19 آذار 2009|تاريخ الوصول=19 كانون الثاني 2014| مسار الأرشيف = https://web.archive.org/web/20150905100721/http://blogs.msdn.com/b/ericlippert/archive/2009/03/19/representation-and-identity.aspx | تاريخ الأرشيف = 5 سبتمبر 2015 }}</ref>.
<syntaxhighlight lang=CSharp>
int foo = 42; // نمط القيمة
سطر 271:
==== الأنماط العامة ====
 
أضيفت الأنماط العامة إلى سي# بدءاً من الإصدار 2.0. تستخدم الأنماط العامة ''بارامترات الأنماط'' والتي تمكن المطور من تصميم صفوف وطرق دون الحاجة إلى تحديد الأنماط المستخدمة، حيث يتم تحديد هذه الأنماط فقط لدى استخدامها. تكمن الفائدة من ذلك بأن القدرة على استخدام بارامترات الأنماط العامة لإنشاء الصفوف والطرق يمكن من استخدامها بشكل فعال كونه يجنب تكاليف التنفيذ الإضافية التي تسببها عمليات التعليب وفك التعليب كما يوضح المثال التالي<ref>{{مرجع ويب| العنوان = الأنماط العامة (دليل برمجة سي#) (بالإنجليزية)| المسار = http://msdn.microsoft.com/en-us/library/512aeb7t.aspx| الناشر = مايكروسوفت| تاريخ الوصول = 19 كانون الثاني 2014| مسار الأرشيف = https://web.archive.org/web/20170317150541/https://msdn.microsoft.com/en-us/library/512aeb7t.aspx | تاريخ الأرشيف = 17 مارس 2017 }}</ref>:
<syntaxhighlight lang=CSharp>
// التعريف عن الصف العام
سطر 296:
}
</syntaxhighlight>
بالمقارنة مع قوالب سي++ يلاحظ أن أنماط سي# العمومية توفر أماناً أفضل إلا أنها في الوقت ذاته محدودة القدرة<ref>{{مرجع ويب| العنوان = مقدمة إلى الأنماط العامة في لغة سي# (بالإنجليزية) | المسار = http://msdn.microsoft.com/en-us/library/ms379564(v=vs.80).aspx | الناشر = مايكروسوفت| مسار الأرشيف = https://web.archive.org/web/20181111081429/https://msdn.microsoft.com/en-us/library/ms379564(v=vs.80).aspx | تاريخ الأرشيف = 11 نوفمبر 2018 }}</ref>، فعلى سبيل المثال ليس من الممكن استخدام الأنماط العمومية كحدود للمعاملات الحسابية<ref>{{مرجع ويب| العنوان = الاختلافات بين قوالب سي++ وأنماط سي# العامة (بالإنجليزية) | المسار = http://msdn.microsoft.com/en-us/library/c6cyy67b.aspx | الناشر = مايكروسوفت| مسار الأرشيف = https://web.archive.org/web/20170417201305/https://msdn.microsoft.com/en-us/library/c6cyy67b.aspx | تاريخ الأرشيف = 17 أبريل 2017 }}</ref>.
 
== مثال "أهلاً بالعالم" ==