سی شارپ (زبان برنامه‌نویسی)

context: زبان سی شارپ، یک زبان برنامه‌نویسی چند الگویی و منظم شده مدل‌های تابعی، امری، عمومی، شیءگرا و جز گرا و در بستر دات نت می‌باشد. این زبان توسط مایکروسافت و جزئی از دات نت به وجود آمد و بعداً استانداردهای ECMA و ISO را نیز دربر گرفت. سی شارپ یکی از ۴۴ زبان برنامه‌نویسی است که توسط زمان اجرای زبان مشترک از چارچوب دات‌نت پشتیبانی می‌شوند و در همه جا به وسیله مایکروسافت ویژوال استودیو شناخته می‌شود.
qas: answers: text: یک زبان برنامه‌نویسی چند الگویی و منظم شده
question: زبان سی شارپ چه زبانی است؟

answers: text: مدل‌های تابعی، امری، عمومی، شیءگرا و جز گرا
question: درزبان سی شارپ چه مدل‌هایی دربستر دات نت انجام می‌گیرد؟

answers: text: مایکروسافت
question: زبان سی شارپ در توسط چه کسی به وجود آمد؟

answers: text: زبان سی شارپ
question: از ۴۴ زبان برنامه‌نویسی که توسط زمان اجرای زبان مشترک از چارچوب دات‌نت پشتیبانی می‌شود، به کدام زبان می‌توان اشاره کرد؟ 

answers: text: زبان سی شارپ
question: کدام زبان برنامه‌نویسی در همه جا به وسیله مایکروسافت ویژوال استودیو شناخته می‌شود؟


question: مایکروسافت چه شرکتی است؟

question: شرکت مایکروسافت چه سالی تأسیس شد؟

context: genericها یا نوع‌های پارامتری شده یا چندریختی‌های پارامتری یک ویژگی جدید چارچوب دات‌نت ۲٫۰ است که به وسیله سی شارپ پشتیبانی می‌شود. برخلاف Templateهای سی پلاس پلاس، در این انواع به جای اینکه نمونه سازی توسط کامپایلر انجام شود، در زمان اجرا صورت می‌گیرد، بنابراین می‌توانند چند زبانه باشند در حالی که ++C نمی‌تواند. آنها دارای ویژگی‌هایی هستند که به‌طور مستقیم توسطTemplateهای C++ پشتیبانی نمی‌شوند مانند نوع محدودیت‌ها در پارامترهای Generic با استفاده از رابط‌ها(Interface). سی شارپ از پارامترهای‌های Generic بدون نوع پشتیبانی نمی‌کند. بر خلاف genericهای جاوا،genericهای دات نت برای پارامتری کردن انواع داده‌ای در اشیاء ماشین مجازی CLI، از مفاهیم شیءگرایی استفاده می‌کنند که اجازه بهینه‌سازی و حفاظت انواع اطلاعات را می‌دهد.
qas: answers: text: نوع‌های پارامتری شده یا چندریختی‌های پارامتری
question: ویژگی جدید چارچوب دات‌نت ۲٫۰  که به وسیله سی شارپ پشتیبانی می‌شود، چه نام دارد؟

answers: text: چندریختی‌های پارامتری
question: کدام ویژگی جدید چارچوب دات‌نت ۲٫۰ ، که به وسیله سی شارپ پشتیبانی می‌شود می‌توانند چند زبانه باشند؟ 

answers: text: شیءگرایی
question: دات نت برای پارامتری کردن انواع داده‌ای در اشیاء ماشین مجازی، ازکدام مفاهیم استفاده می‌کنند که اجازه بهینه‌سازی و حفاظت انواع اطلاعات را می‌دهد؟


question: سی پلاس پلاس چه برنامه‌ای است؟

context: در مثال‌های فوق، عبارات لامبدا صرفاً یک نوع سینتکس برای delegateهای بی‌نام با مقادیر دارای بازگشت هستند. هر چند با توجه به نوع متن استفاده می‌شوند، کامپایلر سی شارپ می‌تواند لامبداها را به ASTها نیز تبدیل کند تا بعداً در زمان اجرا نیز بتوانند پردازش شوند. در مثال فوق، اگر listOfFoo یک مجموعه ساده داخل حافظه نباشد، ولی یک پوشه در اطراف جدول بانک اطلاعاتی می‌باشد. این تکنیک می‌تواند برای بهینه کردن اجرا، برای ترجمه بدنه لامبدا به عبارت معادل آن در SQL استفاده شود. در هر یک از دو راه فوق، خود عبارت لامبدا دقیقاً شبیه کد به نظر می‌رسد، بنابراین روش استفاده در زمان اجرا، برای کاربر ناپیدا می‌باشد.
qas: answers: text: تا بعداً در زمان اجرا نیز بتوانند پردازش شوند
question: چرا کامپایلر سی شارپ می‌تواند لامبداها را به ای اس تی‌ها نیز تبدیل کند؟

answers: text: کامپایلر سی شارپ
question: کدام تکنیک می‌تواند برای بهینه کردن اجرا، برای ترجمه بدنه لامبدا استفاده شود؟

answers: text: لامبدا
question: کدام عبارات صرفاً یک نوع سینتکس برای دیلی گیت‌های بی‌نام با مقادیر دارای بازگشت هستند؟ 

question: کامپایلر سی شارپ چه برنامه‌ای است؟

context: یکی از ویژگی‌های اصلی زبان سی شارپ،Strong Type بودن آن است. Strong Type بودن زبان به این معناست که با اعلان یک متغیر، نوع آن صریحاً باید توسط برنامه‌نویس مشخص شود. آیا اضافه شدن این ویژگی جدید، منافاتی با Strong Type بودن این زبان دارد؟ در پاسخ باید گفت که تعریف متغیرهای محلی به صورت ضمنی با استفاده از کلمه کلیدی var هیچ گونه منافاتی با Strong Type بودن سی شارپ ندارد. چون برنامه‌نویس می‌بایست نوع متغیر را به هنگام اعلان آن صریحاً مشخص کند. نوع متغیر پس از اولین اعلان تا اتمام حوزه تعریف آن تغییر نخواهد کرد و هر گونه تلاش برای تغییر نوع با خطا مواجه خواهد شد؛ بنابراین دو اعلان زیر نامعبر هستند:
qas: answers: text: زبان سی شارپ
question: یکی از ویژگی‌های اصلی کدام زبان برنامه‌نویسی، نوع قوی بودن آن است؟

answers: text: به این معناست که با اعلان یک متغیر، نوع آن صریحاً باید توسط برنامه‌نویس مشخص شود
question: استرانگ تایپ بودن زبان سی شارپ به چه معناست؟

answers: text: چون برنامه‌نویس می‌بایست نوع متغیر را به هنگام اعلان آن صریحاً مشخص کند
question: چرا تعریف متغیرهای محلی به صورت ضمنی با استفاده از کلمه کلیدی وَر هیچ گونه منافاتی با استرانگ تایپ بودن سی شارپ ندارد؟

question: ویژگی‌های اصلی زبان سی شارپ را بیان کنید.

context: ماهیت تمامی برنامه‌های امروزی به گونه‌ای‌ست که با حجم عظیمی از داده‌ها سرو کار دارند. برای مدیریت داده‌ها، نیاز به کلاس‌هایی‌ست که در مهندسی نرم‌افزار آنها را Entity Types می‌نامیم. این کلاس‌ها به عنوان بسته‌هایی از داده‌ها محسوب می‌شوند. معضل فعلی موجود در رابطه با Entity Typeها تعدد سازنده‌های آن‌ها می‌باشد و ممکن است شما نیز با این مشکل برخورد کرده باشید. به این صورت که در سناریوهای مختلف، برنامه‌نویسان مجبور هستند سازنده یک کلاس را به چند شکل سربارگذاری کنند. سی شارپ ۳٫۰ راه چاره‌ای فوق‌العاده برای این مشکل ارائه می‌دهد. Object initializer حالت پیشرفته‌ای از سازنده می‌باشد.
qas: answers: text: به گونه‌ای‌ست که با حجم عظیمی از داده‌ها سرو کار دارند
question: ماهیت تمامی زبان برنامه‌نویسی برنامه‌های امروزی چیست؟

answers: text: تعدد سازنده‌های آن‌ها می‌باشد
question: معضل فعلی موجود در رابطه با انتیتی تایپ‌ها چیست؟

answers: text: در سناریوهای مختلف، برنامه‌نویسان مجبور هستند سازنده یک کلاس را به چند شکل سربارگذاری کنند
question: تعدد سازنده‌های انتیتی تایپ‌ها به چه صورت است؟

answers: text: سی شارپ ۳٫۰
question: راه چاره‌ای فوق‌العاده برای مشکل تعدد سازنده‌های تیتی تایپ اجرای کدام برنامه است؟

question: انواع سی شارپ را بیان کنید.