hotchpotch/wikipedia-multilingual-ir-pairs huggingface dataset:
أزمة صواريخ كوبا صياغة خطاب الرد
مع إرسال الرسالة كان هناك برنامج عمل على طاولة البحث. لأنه وكما لاحظ روبرت كنيدي كان التوقع بالموافقة ضعيف. في الساعة 9:00 مساء اجتمعت الهيئة مرة أخرى لمراجعة أحداث اليوم التالي. كانت الخطط الموضوعة هي ضربات جوية على منصات تلك الصواريخ بالإضافة إلى أهداف اقتصادية، كأماكن تخزين النفط. وصرح مكنامارا بأنه سيتعين عليهم تجهيز التالي: حكومة لكوبا، لأننا سنحتاج لذلك. ثانيا خطة عمل للرد السوفياتي في أوروبا، لأنهم بالتأكيد سوف يفعلون شيئا ما هناك.
في الساعة 12:12 صباح يوم 27 أكتوبر، أبلغت الولايات المتحدة حلفائها بحلف الناتو بان «الوضع يتطور وبسرعة... وقد تجد الولايات المتحدة وخلال فترة قصيرة جدا مضطرة مع حلفائها الغربيين لفعل عمل عسكري ضروري». وقد أضيف إلى هذا القلق تقرير من ال CIA وصل الساعة 6:00 صباحا يفيد بأن جميع منصات الصواريخ في كوبا قد باتت جاهزة للعمل.
في هذا اليوم 27 أكتوبر، ألقت البحرية الأمريكية مجموعة من قنابل الأعماق على الغواصة السوفياتية (B-59) داخل نطاق الحظر، غير مدركين بأنها مسلحة بطوربيدات ذات رؤوس نووية مع أوامر سمح لها أن تستخدم هذا السلاح إذا ثقبت الغواصة (ثقب في جسم السفينة جراء قنابل الأعماق أو إطلاق نار من السطح).
أزمة صواريخ كوبا إنهاء الأزمة
بعد مشاورات مطولة بين السوفييت والإدارة الأمريكية، وافق كيندي على المطالب المتعلقة بإزالة جميع قواعد الصواريخ الموجودة على الحدود التركية السوفييتية بالمقابل إزالة خروتشوف لجميع المنصات الموجودة بكوبا.
في الساعة ال 9:00 من صبيحة 28 أكتوبر، وصلت رسالة من خروتشوف كانت قد أذاعها راديو موسكو. صرح فيها خروتشوف التالي:«أصدرت الحكومة السوفيتية إضافة إلى القرارات السابقة بوقف أي أعمال إضافية في بناء قواعد للأسلحة، فقد أصدرت قرار جديد بتفكيك الأسلحة التي توصف بالهجومية وقواعدها وإعادتهم إلى الاتحاد السوفييتي».
أزمة صواريخ كوبا إنهاء الأزمة
وجاء رد كيندي سريعا، وذلك بإصدار بيان فيه دعوة "إلى المساهمة البناءة والهامة في عملية السلام". واستمر فيها قائلا: "أخذت رسالتي إليك بالسابع والعشرين من أكتوبر وردك اليوم بعين الاعتبار بالقيام بمهمة قوية من جانب حكومتينا والتي ينبغي تنفيذها فورا. وستقوم الولايات المتحدة بعمل تقرير في إطار عمل مجلس الأمن بخصوص كوبا على النحو التالي: ستعلن بأن حكومة الولايات المتحدة الأمريكية سوف تحترم حرمة الحدود الكوبية، وسيادتها، وتتعهد بعدم التدخل بالشؤون الداخلية وعدم إقحام أنفسهم وعدم السماح باستخدام الأراضي الأمريكية كجسر لغزو كوبا، وستمنع كل من يخطط لأعمال عدوانية لكوبا سواء من الأراضي الأمريكية أو أراضي دول مجاورة لكوبا.
يعتبر كاسترو من أكبر المستفيدين من معاهدة كيندي-خروتشوف، فهي من الجانب العملي قد شددت من قبضته داخل كوبا التي لن تهاجمها أمريكا. من جانب آخر كانت كوبا هي المكان الوحيد الذي يستطيع خروتشوف أن يضع صواريخه بها لكي يقايض بها كيندي لإزالة الصواريخ الموجودة بتركيا، لهذا لن يكون للسوفييت نية اللجوء إلى حرب نووية إن كانوا خارج مرمى نيران الأمريكان. لكن بما أن سحب الصواريخ من تركيا لم يكن له صدى قوي بذلك الوقت، فإن خروتشوف بدأ وكأنه الطرف الخاسر بتلك الأزمة. وأدرك كيندي بأنه ربح الرهان ما بين القوتين الجبارتين وظهر خروتشوف كأنه ذليل. ولكن لم تكن تلك هي الحالة عمومًا حيث أن كلا من خروتشوف وكيندي حاولا جهدهما لتجنب أزمة رغم الضغط الشعوب على حكوماتهم، واستمر خروتشوف بالحكم لمدة عامين بعد ذلك.
أزمة صواريخ كوبا نتائج الأزمة
أحرجت تلك التسوية خروتشوف والاتحاد السوفياتي بشكل حاد وذلك أن سحب الولايات المتحدة لصواريخها من تركيا لم يكن له تأثير إعلامي قوي— بل كانت اتفاقية سرية ما بين كيندي وخروتشوف. واعتبر الروس بأنه انسحاب من الأوضاع التي بدؤوا بها— ولو أنهم تصرفوا بشكل جيد لأصبحت الأمور مغايرة وتسير بالإتجاه المعاكس. وقد تنحى خروتشوف عن الحكم بعدها بسنتين بسبب (وإن كان جزئيا) الإحراج الذي تلقاه المكتب السياسي للجنة المركزية للحزب من سوء تصرف خروتشوف بتسريع وتيرة الأزمة في البداية وبالآخر يقدم تنازلات للولايات المتحدة. ولكن هذه الأزمة لم تكن الوحيدة التي أسقطت خروتشوف عن الحكم، إنما السبب الرئيسي هو قناعة منافسيه السياسيين مثل ليونيد بريجنيف بعدم قدرته بأخذ زمام الأمور عند الأزمات العالمية.
أما كوبا، فقد حدثت خيانة جزئية من طرف السوفيات نظرا لأن القرارات بشأن كيفية حل الأزمة قد تمت ما بين كيندي وخروتشوف، ولم تعالج المواضيع التي تهم كوبا كوضع جوانتاناموا. مما أدت إلى تدهور بالعلاقات الكوبية السوفياتية لعدة سنوات. ولكن استفادت كوبا من شرط عدم تعرضها للغزو.
أزمة صواريخ كوبا نتائج الأزمة
أحد القادة الميدانيين بالجيش الأمريكي لم يكن راضيا عن النتيجة أيضا. إنه الجنرال ليماي الذي أبلغ الرئيس بأن ماحصل هو أكبر هزيمة بالتاريخ الأمريكي، وقد كان يجب علينا أن نبدأ الغزو مباشرة.
أزمة الصواريخ الكوبية حفزت على عمل خط ساخن ومباشر ما بين موسكو-واشنطن، الغرض من تلك الخاصية هي تسهيل عمل اتصالات مباشرة ما بين قادة الدولتين النوويتين عند حل أي أزمة شبيهة بأزمة أكتوبر 1962.
بعض المعلقون السياسيون (مثل ميلمان 1988 وهيرش 1997) قالوا بأن تلك الأزمة هيئت الأجواء لأمريكا لاستخدام الحلول العسكرية، مثل حرب فيتنام.
المواجهة الأمريكية-الروسية كانت متزامنة مع الحرب الهندية الصينية، التي بدأت وقت الحظر العسكري الأمريكي لكوبا. وتكهن المؤرخون بأن الهجوم الصيني ضد الهند من أجل أراض متنازع عليها كان مقصدها ليتزامن مع الأزمة الكوبية.
أزمة صواريخ كوبا نقاط تاريخية
خلص المؤرخ والمستشار في عهد كيندي أرثر شليزنجر بمقابلة لراديو (National Public Radio) في 16 أكتوبر 2002 بأن كاسترو لم يكن يريد تلك الصواريخ وإنما وافق تحت ضغط سياسي من خروتشوف وبحجة «التضامن الاشتراكي». وأقر أيضا بانه لم يكن مرتاح تماما لفكرة الصواريخ في أراضي كوبا. فالجمعية الوطنية الكوبية للثورة قبلت ذلك لحماية كوبا ضد أي هجوم أمريكي، ولمساعدة حليفهم الرئيسي وهو الاتحاد السوفياتي. وقد أقر شليزنجر بأن كاسترو بعد قبوله الصواريخ قد غضب من خروتشوف أكثر من كيندي بعد الأزمة، لسحبه الصواريخ بدون أن يقرر النقاش معه في مسألة السحب.
أزمة صواريخ كوبا نقاط تاريخية
أوائل عام 1992 جرى التأكيد على أن القوات السوفياتية الرئيسية في كوبا وقبل أندلاع الأزمة قد استلمت رؤوس حربية نووية تكتيكية لراجمات الصواريخ وقاذفات القنابل اليوشن IL-28. مع أن الجنرال أناتولي جريبكوف أحد أعضاء السوفيات المسؤولين عن تلك العملية، قال بأن قائدهم وهو الجنرال عيسى بلييف كانت له صلاحية مسبقة لاستخدامها إذا شنت الولايات المتحدة حملة واسعة النطاق لغزو كوبا. وقال بأن تفويض الكرملين لم يوقع عليه ولم يتم ارساله. روايات أخرى تقول بأن بلييف قد أعطي له التفويض لاستخدام الأسلحة النووية التكتيكية ولكن بالحالات القصوى جدا -كغزو الولايات المتحدة للجزيرة وبحيث تكون الاتصالات مقطوعة مع موسكو- ويبدو أن القوات الأمريكية كانت مستعدة للهجوم (بعد عملية إسقاط طائرة ال U-2 ولكن قبل القاء كيندي خطابه التلفزيوني)، وقد ألغى بعدها خروتشوف التفويض الذي أعطاه لبلييف لاستخدام الأسلحة التكتيكية النووية وحتى بالحالات القصوى.
وكان كاسترو يعلم بأن الرؤوس الحربية قد وصلت بالفعل كوبا وقد أوصى باستخدامها، بالرغم من يقينه بأن ذلك سيدمر الجزيرة بأكملها عند اندلاع حرب نووية.
أزمة صواريخ كوبا اقرأ أيضا
اطلقت مكتبة جون ف كيندي في أكتوبر 1997 مجموعة من التسجيلات توثق الأزمة خلال الفترة من 18 وحتى 29 أكتوبر. تلك التسجيلات قد تم عملها داخل المكتب البيضاوي، وتشمل مذكرات النقاش الشخصية للرئيس كيندي، ومحادثاته مع مستشاريه، والمقابلات مع هيئة الأركان المشتركة واعضاء من اللجنة التنفيذية الخاصة.
يمكن القول إنه لم يتم تمييز أخطر لحظة في الأزمة بها حتى تم عمل مؤتمر هافانا لأزمة الصواريخ الكوبية في أكتوبر 2002، وحضره الكثير من قدامى محاربي تلك الأزمة، وقد علم أنه يوم 26 أكتوبر 1962 رمت المدمرة الأمريكية بيل (USS Beale) قنابل أعماق على غواصة كانت مجهولة الهوية لديهم، وقد كانت بالواقع غواصة سوفياتية ومجهزة بالأسلحة النووية. وقد اندلعت مشادة بين القادة الثلاثة مع الجنرال فاسيلي أرخيبوف الذي عارض قرارهم بإرسال طوربيد نووي لتدمير المدمرة الأمريكية. وهو بذلك له الفضل في تفادي نشوب حرب نووية بتلك اللحظة.
خليج هندوراس
خليج هندوراس هو أحد فروع البحر الكاريبي تحيط به شواطئ بيليز وهندوراس وغواتيمالا. يبلغ طوله من شماله إلى جنوبه 200 كم. تصب العديد من أنهار أمريكا الوسطى فيه بما فيها الموتاجوا واللاجو وديلزابل.
يُعد الخليج مقصدا للسياح سواء للإبحار فيه أو لمطالعة شعبه المرجانية. شهد عام 1961 هبوب إعصار هاتي والذي قام بتدمير العديد من المباني على شواطئ بيلز .
سي شارب
سي# (بالإنجليزية: #C)‏ (تلفظ سي شارب/see sharp) هي لغة برمجة متعددة الأنماط تتمتع بكونها سكونية التنميط وأمرية وتعريفية ووظيفية وتعتبر كائنية التوجُّه أو البرمجة الشيئية (بالإنجليزية: (Object-oriented programming - OOP) وعمومية وشيئية المنحى (غرضية التوجه) (باستخدام الفئات) كما تخضع لمبادئ البرمجة التركيبية المنحى.
قامت مايكروسوفت بتطوير هذه اللغة في إطار عملها على تطوير دوت نِت وتمت الموافقة على تعييرها من منظمة Ecma (المعيار Ecma-334) والمنظمة الدولية للمعايير (المعيار ISO/IEC 23270:2006). إن سي شارب إحدى لغات البرمجة المصممة للعمل على البنية التحتية المشتركة للغات البرمجة (CLI). صُممت لغة سي شارب لتكون لغة بسيطة وحديثة وعامة الأغراض وشيئية المنحى. وقد قاد أندرس هيلسبرغ فريق تطويرها.
الإصدار الأحدث من اللغة هو C# 13 وطرح في 2024.
سي شارب أهداف التصميم
يدرج المعيار ECMA الأهداف التصميمية التالية للغة #C:
ينبغي أن توفر اللغة والتحقيق أيضاً دعماً لمبادئ هندسة البرمجيات مثل التحقق القوي من الأنماط (أو التحقق الاستاتيكي) والتحقق من حدود المصفوفات واكتشاف محاولات استخدام المتحولات غير المهيئة وجمع القمامة الأوتوماتيكي. كذلك التأكيد على أهمية متانة وديمومة البرمجيات وإنتاجية المبرمج.
على الرغم من أنه ينبغي على التطبيقات المكتوبة بلغة #C أن تقتصد في استخدام الذاكرة وقوة المعالجة إلا أن اللغة لا تهدف إلى منافسة مباشرة مع أداء وحجم التطبيقات المكتوبة بلغة C أو لغة التجميع.
سي شارب التسمية
إن الاسم "C sharp" مستوحى من الرمز الموسيقي حيث يشير الرمز ♯ إلى أن النوتة المكتوبة مرتفعة أكثر بمقدار نصف درجة موسيقية. تتشابه هذه التسمية مع اسم لغة ++C حيث تشير "++" إلى وجوب زيادة المتحول بمقدار 1. يشبه الرمز ♯ شكلاً من أربع إشارات "+" (في شبكة 2x2) بما يعني ضمناً أن هذه اللغة هي زيادة بمقدار 1 على لغة ++C.
سي شارب التسمية
تم اختيار رمز الشباك (رمز اليونيكود U+0023) لتمثيل رمز شارب في كتابة اسم اللغة عوضاً عن الرمز ♯ (رمز اليونيكود U+266F) بسبب قيود تقنية تمنع من إظهاره (كافتقار دعم الخطوط القياسية وبعض المتصفحات للرمز ♯) كذلك عدم وجوده على لوحة المفاتيح القياسية.اتبع هذا التقليد أيضاً في معيار توصيف اللغة ECMA 334. على كل الأحوال تستخدم مايكروسوفت الرمز الموسيقي الصحيح عندما يمكنها عملياً القيام بذلك (على سبيل المثال في الحملات الدعائية أو على غلاف المنتج). استُخدمت اللاحقة «شارب» في عدد من لغات دوت نت المبنية على لغات أخرى بما فيها لغة جي شارب (لغة دوت نت صممتها مايكروسوفت بالاشتقاق من لغة جافا 1.1) ولغة إيه شارب (مشتقة من لغة أيدا) ولغة البرمجة الوظيفية إف شارب. أطلق على التحقيق الأصلي من لغة آيفل الخاص بدوت نت اسم آيفل شارب إلا أنه تم التخلي عن هذا الاسم بعد دعم آيفل بشكل كامل. استُخدمت هذه اللاحقة أيضاً في تسمية بعض المكتبات مثل Gtk شارب (تغليف دوت نت لمكتبة +Gtk ومكتبات جنوم أخرى) ومكتبة كوكوا شارب (تغليف مكتبة كوكوا).
سي شارب تاريخ اللغة
بدأ تطوير منصة دوت نت بكتابة مجموعة من مكتبات الصفوف، وقد استخدم نظام تصريف مدار اسمه Simple Managed C أو اختصاراً SMC للقيام بذلك. لاحقاً وبالتحديد في كانون الثاني 1999 شكل أندرس هيلسبرغ فريقاً من المطورين بهدف بناء لغة جديدة اسمها كول (بالإنجليزية: Cool)‏، يشكل الاسم اختصاراً لعبارة «لغة غرضية التوجه شبيهة بلغة C» (بالإنجليزية: C-like Object Oriented Language)‏. قررت مايكروسوفت الإبقاء على هذا الاسم إلا أنها تخلت عن ذلك لاحقاً لأسباب قانونية لها علاقة بحقوق العلامات المسجلة. على التوازي مع ذلك أُعلن مشروع دوت نت رسمياً في مؤتمر للمطورين المحترفين (PDC) في تموز عام 2000 وأعيد تسمية اللغة إلى سي# كما تم تصدير وقت التنفيذ الخاص بلغة إيه إس بي دوت نت بالإضافة إلى مكتبات الصفوف إلى هذه اللغة.
سي شارب تاريخ اللغة
اعتبر مصمم لغة جافا جيمس غوسلينغ وبيل جوي وهو أحد مؤسسي شركة صن مايكروسيستمز التي أتت بلغة جافا أن لغة سي# ليست سوى «تقليداً» للغة جافا؛ وقد قال غوسلينغ معقباً «إنها [المقصود سي#] كجافا نوعاً ما ولكن بعد التخلي عن الاعتمادية والإنتاجية والأمان». كتب كل من كلاوس كرفت وأنجلكا لانجر في مقال لهما في مدونة «إن جافا وسي# لغتا برمجة متطابقتان تقريباً. وهذا تكرار مضجر يفتقر الإبداع»، «من الصعب جداً الادعاء أن جافا أو سي# لغة برمجة ثورية غيرت الأسلوب الذي نكتب فيه البرامج»، «لقد استعارت سي# الكثير من جافا -والعكس صحيح. حيث تدعم سي# ميزة التعليب وفك التعليب الآن وقريباً سوف نجد ميزةً شبيهة في جافا». قال أندرس هيلسبرغ في تموز عام 2000 أن سي# ليست «نسخة من جافا» بل أنها «أكثر قرباً إلى لغة سي++» من ناحية التصميم.
سي شارب تاريخ اللغة
في تشرين الثاني 2005 أعلن عن الإصدار 2.0 من سي# ومن هنا بدأت سي# وجافا بالتطور في اتجاهات متزايدة الاختلاف. إن أول وأهم هذه الاختلافات كان في إضافة الأنماط العمومية (بالإنجليزية: Generics)‏ إلى كلتا اللغتين حيث كان تحقيقهما لهذه الأنماط شديد الاختلاف حيث تقوم سي# بالتعامل مع الأنماط العمومية كصفوف حقيقية وتولد الكود الخاص بها وقت التنفيذ بينما تتعامل جافا مع هذه الأنماط كميزة مضافة إلى نحو اللغة تمكن المطور من كتابة كود عمومي كما تمكن المترجم من التأكد من صحة الأنماط فقط بينما لا تحول هذه الأنماط إلى أنماط حقيقية وقت التنفيذ ولا يتم توليد كود خاص بها على غرار سي#.
إضافة إلى ذلك فقد أضيفت إلى سي# مجموعة من الميزات الهامة بهدف تمكين استخدام البرمجة الوظيفية فيها كُللت بإضافة لينك في الإصدار 3.0 والإطار البرمجي الداعم لتعابير لامبدا والطرق الملحقة والأنماط غير المسماة. تمكن هذه الميزات المطور من استخدام تقنيات البرمجة الوظيفية عندما يكون من المستحسن القيام بذلك. إن إضافات لينك وغيرها من الميزات الوظيفية تساعد المطور على كتابة أسطر أقل عند القيام بمهام روتينية كالاستعلام من قاعدة بيانات أو إعراب ملف إكس إم إل أو البحث ضمن بنية معطيات بما يمكن من التركيز على هدف البرنامج المنطقي وتحسين مقروئيته وصيانته.
كان لدى سي# جالب للحظ اسمه آندي (سمي باسم أندرس هيلسبرغ) وقد أحيل إلى التقاعد في 29 كانون الثاني عام 2004.
عُرضت سي# على لجنة آيزو الفرعية JTC 1/SC 22 للمراجعة والتعيير، كان اسم المعيار ISO/IEC 23270:2003 وهو ملغى اليوم. تمت الموافقة فيما بعد على تعيير سي# وفق المعيار ISO/IEC 23270:2006.
سي شارب النحو
تتفرد لغة سي# عن غيرها من لغات برمجة إطار عمل دوت نت في كونها مرتبطة بشكل وثيق بمزايا البنية التحتية المشتركة للغات البرمجة (CLI)، فعلى سبيل المثال تنسب معظم الأنماط الحقيقية إلى قرائنها من أنماط القيمة (بالإنجليزية: value-types)‏ الموجودة في CLI. على الرغم من ذلك فإن توصيف اللغة لا يتطرق إلى متطلبات توليد الكود الخاصة بالمصرّف، بمعنى أن التوصيف لا يرغم مصرف سي# على توليد كود متوافق مع وقت التنفيذ المشترك للغات (CLR) أو توليد تعليمات متوافقة مع اللغة المشتركة الوسيطة (بالإنجليزية: Common Intermediate Language)‏ أو أي تنسيق آخر. وهكذا يمكّن (نظرياً على الأقل) مصرّف سي# من توليد كود لغة الآلة مباشرة على غرار باقي المصرفات كمصرّف سي++ ومصرّف فورتران. فيما يلي بعض من المزايا الجديرة بالاهتمام كونها تميز لغة سي# عن لغتي سي وسي++ (بالإضافة إلى جافا لدى ذكر ذلك صراحة):
سي شارب النحو
إن إمكانية الميتا-برمجة (بالإنجليزية: Meta Programming)‏ من خلال استخدام السمات (بالإنجليزية: Attributes)‏ هي جزءً من توصيف اللغة. توفر العديد من هذه السمات وظيفية مطابقة لتلك التي توفرها موجهات قبل التصريف المعتمدة على المنصة المدعومة من قبل جي.سي.سي وفيجوال سي++.
تتيح الدوال الملحقة (بالإنجليزية: Extension Methods)‏ لمبرمجي سي# إمكانية استخدام الطرق الاستاتيكية كما لو أنها طرق خاصة بالصف، وهذا ما يمكن المبرمج من إضافة طرق جديدة إلى الصفوف عن الإحساس بضرورة وجودها في الصف نفسه وكافة الصفوف المشتقة منه.
لدى سي# وظيفية الإعلان عن الأحداث والتسجيل عليها من خلال استخدام delegate وغيرها بشكل يشابه وظيفية الإشارات والمقابس (بالإنجليزية: signals and slots)‏ التي تضيفها بيئة تطوير كيوت إلى لغة سي++.
توفر سي# استدعاءات الطرق المتزامنة بما يشابه لغة جافا عن طريق استخدام السمة [(MethodImpl(MethodImplOptions.Synchronized]، كما أنها تدعم أقفال استبعاد التشارك عبر الكلمة المفتاحية lock.
سي شارب النحو
لا تسمح لغة سي# باستخدام المتحولات العامة ولا التوابع الشاملة إذ يجب التصريح عن كافة الطرق والأعضاء ضمن الصفوف. تعد الطرق الاستاتيكية الخاصة بالصفوف العامة بديلاً للتوابع والمتحولات الشاملة.
يوفر فضاء التسمية namespace في لغة سي# نفس المستوى من العزل الذي توفره رزمة package جافا وفضاء التسمية namespace سي++، كما أنه يتمتع بالعديد من القواعد والميزات الشبيهة برزمة جافا.
سي شارب النحو
تدعم سي# نمط المعطيات البولياني bool بشكل صارم. إذ تتطلب كافة العبارات البرمجية التي تتضمن شروطاً (مثل عبارة while وعبارة if) تعابيراً من نمط يحقق المعامل true كالنمط البولياني مثلاً. بالمقارنة مع لغة سي++ التي تحوي أيضاً النمط البولياني نجد أن سي++ تتيح تحويل هذا النمط من وإلى أرقام صحيحة، نتيجةً لذلك يمكن تتطلب بعض التعابير مثل (if(a فقط أن يكون a قابل للتحويل إلى bool مفسحة المجال بذلك لأن يكون a من النمط int أو حتى أو يكون مؤشراً. لا تتيح سي# مقاربة «الأعداد الصحيحة تعني صحيح أو خطأ» على اعتبار أن إجبار المبرمج على استخدام تعابير تعيد النمط bool تماماً قد يمنع حدوث عددٍ من الأخطاء البرمجية الشائعة في لغتي سي وسي++ (مثل العبارة (if(a = b حيث استًبدل معامل المقارنة == بمعامل الإسناد =).
سي شارب النحو
تتيح سي# إمكانية استخدام المؤشرات إلى عناوين الذاكرة فقط ضمن كتل مشار إليها بالكلمة المفتاحية unsafe (غير آمن)، وتتطلب البرامج التي تحتوي كوداً غير آمنٍ سماحيات ملائمة كي تعمل. غالباً ما تستخدم الدلائل (بالإنجليزية: References)‏ الآمنة من أجل الولوج إلى الكائنات، حيث تشير هذه الدلائل دائماً لى كائنات فعالة في الذاكرة كما أن لديها قيمة فارغة null معرفة بشكل ملائم؛ من المستحيل الحصول على دليل إن كائن تم تدميره (من خلال جامع القمامة) أو الولوج إلى كتلة عشوائية في الذاكرة. يمكن للمؤشر غير الآمن الإشارة إلى متحول من نمط-قيمة أو مصفوفة أو سلسلة محرفية أو كتلة من الذاكرة محجوزة على المكدس. يمكن للكود غير الآمن أن يخزن ويتلاعب بالمؤشرات من خلال النمط System.IntPtr ولكن لا يمكنه الاطلاع على محتوياتها.
لا يمكن تحرير الذاكرة المُدارة بشكل مباشر إذ يتم تحريرها بشكل أوتوماتيكي من قبل جامع القمامة. إن جمع القمامة يعالج معضلة تسرب الذاكرة من خلال إعفاء المبرمج من مسؤولية تحرير الذاكرة.
سي شارب النحو
لا تدعم سي# الوراثة المتعددة على الرغم من أنه من الممكن لصف أن يحقق عدداً من الواجهات. يعود السبب في ذلك إلى قرار اتخذه المعماري الرائد في تصميم اللغة بهدف الابتعاد عن التعقيد وتبسيط المتطلبات المعمارية الخاصة بالبنية التحتية المشتركة للغات البرمجة (CLI). في حال تحقيق عدة واجهات تحتوي الطريقة ذاتها تتيح سي# للمبرمج إمكانية تحقيق الطريقة عدة مرات بشكل يتناسب مع الواجهة التي سيتم استدعاؤها من خلالها، أو (كما في لغة جافا) يمكن للمبرمج أن يحقق الطريقة مرة واحدة فقط بحيث يتم استدعاء هذا التحقيق من قبل كافة الواجهات التي تحتوي تلك الطريقة.
سي شارب النحو
تتمتع سي# بكونها ذات تنميط أكثر أمناً من لغة سي++. إن التحويلات الضمنية المتاحة بشكل افتراضي في اللغة هي تلك المعدة الآمنة بشكل حصري. مثل توسيع الأعداد الصحيحة (من Int16 إلى Int32 مثلاً). يتم تطبيق هذه السياسة أثناء التصريف وخلال الترجمة في الوقت المناسب (JIT) وفي بعض الأحيان أثناء التنفيذ. لا يوجد تحويل ضمني بين النمط البولياني والنمط الصحيح ولا بين أعضاء الأنماط التعدادية والنمط الصحيح (باستثناء المحرف 0 والذي يمكن تحويله ضمنياً إلى أي نمط تعدادي). يجب الإشارة إلى أي تحويل معرف من قبل المستخدم بشكل صريح أو ضمني بشكل يخالف البواني الناسخة ومعاملات التحويل في لغة سي++ التي تعمل بشكل ضمني افتراضياً.
سي شارب النحو
توفر لغة سي# الخصائص (بالإنجليزية: Properties)‏ كتجميل لغوي لنمط برمجي شائع يتم فيه تعريف زوج من الطرق: طريقة للحصول على القيمة (بالإنجليزية: getter)‏ وأخرى لتعديل القيمة (بالإنجليزية: setter)‏ بهدف تغليف عمليات الوصول إلى عضو من أعضاء الصف. نتيجة لذلك لم تعد هنالك حاجة لكتابة العديد من هذه الطرق بشكل تكراري، بالإضافة إلى ذلك يمكن الولوج إلى الخصائص بشكل موجز بنفس طريقة الولوج إلى الأعضاء ولا حاجة لاستخدام استدعاء الطريقة المعتاد للقيام بذلك.
خلافاً للغة جافا لا تدعم لغة سي# الاستثناءات المفحوصة (الاستثناءات التي يمكن أن تحصل ضمن طريقة ما، يمكن للطريقة أن تصرح عن هذه الاستثناءات كجزء من توقيعها). وقد اتخذ قرار بالإحجام عن هذه الميزة نظراً لأنها قد تسبب معضلات فيما يتعلق بقابلية التوسع والتعامل مع الإصدارات المختلفة.
سي شارب النحو
لدى سي# نظام أنماط موحد يدعى نظام الأنماط المشترك (بالإنجليزية: Common Type System)‏  أو اختصاراً CTS. إن نظام الأنماط الموحد يقوم على مبدأ أن كافة الأنماط بما فيها الأنماط البسيطة كالأعداد الصحيحة هي صفوف مشتقة من الصف System.Object. على سبيل المثال يرث كل نمط الطريقة ()ToString.
يصنف نظام الأنماط المشترك أنماط المعطيات ضمن فئتين:
تتصف الكائنات من نمط القيمة بأنها لا تملك محدداً مرجعياً ولا تمتلك خصائص المقارنة المرجعية - فمعاملات المساواة وانعدام المساواة بين أنماط القيمة تقوم بمقارنة القيمة الحقيقية للبيانات الموجودة ضمن الكائنات ما لم تكن معاملات المقارنة هذه محملةً بشكل زائد. تُشتق أنماط القيمة من النمط System.ValueType ولديها دائماً قيمة افتراضية كما يمكن إنشاؤها ونسخها في أي وقت. من أهم القيود المفروضة على أنماط القيمة هو عدم المقدرة على الاشتقاق من بعضها البعض (إلا أنها تستطيع تحقيق الواجهات) كما أنها لا يمكن أن تحوي بانياً افتراضياً (بدون بارامترات). إن الأنماط البسيطة مثل النمط int (عدد صحيح ذو إشارة بطول 32 بتاً) والنمط float(عدد فاصلة عائمة بطول 32 بت معرف من آي تربل إي) والنمط char (وحدة كود من نظام يونيكود بطول 16 بت) والنمط System.DateTime (يعرف لحظة زمنية ما بدقة نانوثانية) هي أمثلة على أنماط القيمة. كذلك النمط enum (نمط تعدادي) والنمط struct (بنى معرفة من قبل المستخدم).
بمقابل ذلك تمتلك أنماط المرجع مفهوم المحدد المرجعي - أي أن كل كائن من النمط المرجعي يمتلك محدداً متميزاً عن محددات بقية الكائنات حتى وإن كان البيانات الموجودة ضمن كائنين هي ذاتها. ينعكس هذا المفهوم على عمليات مساواة أو عدم مساواة أنماط المرجع حيث تقوم باختبار المساواة المرجعية ولا تختبر مساواة القيم بينها إلا في حال تحميل المعاملات المقابلة بشكل زائد (كما هو الحال بالنسبة للنمط System.String. بشكل عام لا يمكن إنشاء كائنات من النمط المرجعي ولا نسخ كائن موجود ولا إجراء مقارنات بين قيم كائنين مرجعيين، على الرغم من ذلك توفر بين أنماط المرجع خدمات كهذه عبر التصريح عن بانٍ عام أو عبر تحقيق الواجهة الموافقة (مثل ICloneable وIComparable). بعض الأمثلة على أنماط المرجع النمط Object (الصف الأساسي الذي تشتق منه كافة الصفوف الأخرى) والنمط System.String (سلسلة محرفية من النمط يونيكود) والنمط System.Array (الصف الأساسي الذي تشتق منه كافة المصفوفات).
كلا الفئتين قابلتان للتوسيع بأنماط جديدة معرّفة من قبل المستخدم.
التعليب (بالإنجليزية: Boxing)‏ هو عملية تحويل كائن من نوع نمط القيمة إلى القيمة الموافقة كنمط مرجعي وهو أحد العمليات الضمنية في لغة سي#.
فك التعليب (بالإنجليزية: Unboxing)‏ هو عملية تحويل قيمة كائن من نوع نمط مرجعي (معلّب مسبقاً) إلى القيمة الموافقة كنمط القيمة. يتطلب فك التعليب قسراً صريحاً للنمط. إذا كان الكائن المعلب من النمط T يمكن عندها فك تعليب هذا الكائن فقط إلى النمط T (أو إلى النمط <Nullable<T).
أضيفت الأنماط العامة إلى سي# بدءاً من الإصدار 2.0. تستخدم الأنماط العامة بارامترات الأنماط والتي تمكن المطور من تصميم صفوف وطرق دون الحاجة إلى تحديد الأنماط المستخدمة، حيث يتم تحديد هذه الأنماط فقط لدى استخدامها. تكمن الفائدة من ذلك بأن القدرة على استخدام بارامترات الأنماط العامة لإنشاء الصفوف والطرق يمكن من استخدامها بشكل فعال كونه يجنب تكاليف التنفيذ الإضافية التي تسببها عمليات التعليب وفك التعليب كما يوضح المثال التالي:
بالمقارنة مع قوالب سي++ يلاحظ أن أنماط سي# العمومية توفر أماناً أفضل إلا أنها في الوقت ذاته محدودة القدرة، فعلى سبيل المثال ليس من الممكن استخدام الأنماط العمومية كحدود للمعاملات الحسابية.
سي شارب مثال «أهلاً بالعالم»
فيما يلي برنامج بسيط بلغة سي#، وهو إصدار من برنامج أهلاً بالعالم التقليدي:
سيقوم هذا البرنامج بطباعة العبارة !Hello World إلى الكونسول. لكل سطر في هذا البرنامج وظيفة معينة:
يقوم السطر السابق بإخبار المصرف أن يستخدم System كبادئة مرشحة للاستخدام للأنماط المستخدمة في الكود المصدري. في هذه الحالة عندما يصادف المصرف الكلمة Console في الأسطر اللاحقة سوف يبحث عن نمط اسمه Console مبتدئاً عملية البحث في التجميعة (بالإنجليزية: Assembly)‏ الحالية ومن ثم كافة التجميعات الأخرى المشار إليها في البرنامج. سوف يفشل المصرف في هذه الحالة في إيجاد النمط Console وعندها سيحاول البحث عن نمط اسمه System.Console مستخدماً System كبادئة لاسم النمط، وسينجح في إيجاده لأن اسم النمط الكامل هو بالفعل System.Console. إن الكلمة المفتاحية using تتيح للمبرمج أن يسرد كافة البوادئ المرشحة للاستخدام أثناء التصريف كبديل عن استخدام الاسم الكامل للنمط.
سي شارب مثال «أهلاً بالعالم»
يعرّف السطر السابق الصنف Program. كل ما يوجد ضمن زوج القوسيين التاليين يتبع تعريف Program.
يعرّف هذا السطر طريقة استاتيكية (خاصة بالصف) يتم استدعاؤها عندما يبدأ البرنامج بالتنفيذ. يستدعي وقت تنفيذ دوت نت (CLR) الطريقة Main. (ملاحظة: يمكن استدعاء الطريقة Main كغيرها من الطرق، على سبيل المثال يمكن لطريقة أخرى من الصف Program استدعاء الطريقة Main). الكلمة المفتاحية static تجعل الولوج إلى الطريقة مباشرة دون الحاجة إلى إنشاء كائن من الصف Program ممكناً. في تطبيقات الكونسول يجب أن تكون الطريقة Main استاتيكية. لأنه في حال لم تكن استاتيكية عندها سيحتاج البرنامج إلى كائن من الصف Program، إلا أن إنشاء الكائن سيحتاج برنامجاً يقوم بإنشائه. لحل مشكلة الاعتمادية التبادلية هذه تقوم مصرفات سي# لدى تصريفها تطبيقات الكونسول بإصدار خطأ عند الفشل في إيجاد طريقة Main استاتيكية. الكلمة المفتاحية void تعني أن الطريقة Main لن تقوم بإعادة قيمة.
سي شارب مثال «أهلاً بالعالم»
يقوم هذا السطر بكتابة خرج (ناتج التنفيذ للبرنامج) البرنامج. إن Console هو صف (كلاس) استاتيكي موجود في فضاء التسمية (Namespace) System ويقوم بدور واجهة برمجية إلى المجاري الأساسية (مجرى الدخل ومجرى الخرج ومجرى الخطأ) خاصة بتطبيقات الكونسول. يستدعي البرنامج الطريقة WriteLine الخاصة بالصف (كلاس) Console والتي تقوم بإظهار محتوى البارامتر الخاص بها (في هذه الحالة !Hello World) إلى الكونسول في سطر مستقل.