یک چارچوب نرمافزاری برای توسعه برنامههای تحت وب، ویندوز، وب سرویسها و کنسول.
شامل کتابخانههای کلاس گسترده و پشتیبانی از بیش از 20 زبان برنامهنویسی.
توسط مایکروسافت در سال 2000 معرفی شد.
آخرین نسخه Visual Studio 2015 از توسعه برنامهها برای ویندوز، لینوکس، Mac، iOS، اندروید و کنسولهای بازی پشتیبانی میکند.
اجزای چارچوب دات نت
CLR (Common Language Runtime):
هسته مرکزی دات نت.
مدیریت اجرای برنامهها، حافظه و نخها.
عملکردی مشابه ماشین مجازی جاوا.
FCL (Framework Class Libraries):
مجموعهای عظیم از کلاسهای آماده.
CLS (Common Language Specification):
ویژگیهای عمومی مشترک بین زبانهای دات نت.
MSIL (Microsoft Intermediate Language):
تبدیل کد زبانهای مختلف به زبان سطح میانی.
CTS (Common Type System):
هماهنگی بین زبانهای مختلف دات نت.
سبکهای برنامهنویسی
برنامهنویسی ساختیافته:
رویکرد خطی و مرحلهای.
تقسیم برنامه به زیربرنامهها.
زبانهای نمونه: C, Pascal.
برنامهنویسی شیگرا:
مبتنی بر اشیاء و ارتباطات بین آنها.
اصول: کپسولهسازی، وراثت، چندریختی، انتزاع.
مفاهیم اولیه
فضای نام (Namespace):
ساختار سازمانی برای دستهبندی کلاسها.
کلاس (Class):
واحد برنامهنویسی در C#.
شامل کلاسهای آماده (FCL) و کلاسهای نوشتهشده توسط برنامهنویس.
شی (Object):
نمونهای از یک کلاس.
متد (Method):
عملیاتی که بر روی دادهها انجام میشود.
صفت (Attribute):
ویژگیهای مربوط به هر کلاس.
زبان برنامهنویسی C
ویژگیها:
زبان سطح بالا و شیگرا.
ترکیبی از قدرت C++ و سادگی Visual Basic.
بر پایه C++ و با الهام از جاوا ایجاد شده.
نحوه اجرای برنامه:
کامپایل کد C# به MSIL.
تبدیل MSIL به کد محلی توسط JIT کامپایلر.
اجرای کد توسط CLR.
قواعد نگارش برنامه
پایان دستورات با نقطهویرگول (;).
حساس به حروف بزرگ و کوچک.
توضیحات با // برای یک خط و /* ... */ برای چند خط.
واژههای کلیدی C
کلمات رزرو شده مانند abstract, class, if, return و غیره.
فضای نام
واحد برنامهنویسی در C#.
کلاسها به دو دسته تقسیم میشوند:
کلاسهای آماده (FCL).
کلاسهای نوشتهشده توسط برنامهنویس.
هر فضای نام شامل چندین کلاس مرتبط است.
نحوه استفاده از فضای نام
استفاده مستقیم:
csharp
int n = System.Convert.ToInt32(x);
استفاده از using:
csharp
using System;
int n = Convert.ToInt32(x);
متدها
دستهبندی:
متدهای آماده (از قبل نوشتهشده).
متدهای نوشتهشده توسط برنامهنویس.
فراخوانی متدها:
متد ایستا: ClassName.MethodName(parameters);
متد غیر ایستا: ClassName obj = new ClassName(); obj.MethodName(parameters);
قالبهای پروژه پرکاربرد
Console Application:
برنامههای متنی تحت کنسول.
Windows Form Application:
برنامههای ویندوزی با عناصر بصری.
ASP.NET Web Application:
برنامههای تحت وب.
Windows Forms Control Library:
ایجاد کنترلهای سفارشی.
اجزای اصلی صفحه طراحی ویژوال
فرم برنامه:
نمای ظاهری برنامه و کنترلها.
پنجره مرورگر راهحل (Solution Explorer):
مدیریت پروژهها و فایلها.
پنجره خواص (Properties):
تنظیم خواص فرم و کنترلها.
جعبه ابزار (Toolbox):
عناصر بصری برای طراحی فرم.
ابزارهای پرکاربرد
کنترلها:
Button, Label, TextBox, CheckBox, ComboBox, ListBox, و غیره.
پنجره خواص
تنظیم خواص فرم و کنترلها:
نام (Name), رنگ (BackColor), فونت (Font), متن (Text), و غیره.
رویدادها
تعریف:
هر اتفاقی که در محیط ویندوز رخ میدهد (مانند کلیک یا باز کردن پنجره).
مدیریت رویدادها:
نوشتن کد برای پاسخ به رویدادها.
پاسخهای سوالات (نسبت به دومین PDF)
۱. چارچوب دات نت چیست و چه اجزایی دارد؟
پاسخ:
چارچوب دات نت (.NET Framework) یک پلتفرم نرمافزاری است که توسط مایکروسافت برای توسعه و اجرای برنامههای تحت ویندوز، وب و موبایل ارائه شده است. اجزای اصلی:
CLR (Common Language Runtime): مسئول اجرای کد و مدیریت حافظه.
FCL (Framework Class Library): مجموعهای از کلاسها و کتابخانههای آماده.
CLS (Common Language Specification): استانداردهایی برای سازگاری بین زبانهای مختلف.
MSIL (Microsoft Intermediate Language): کد میانی که توسط کامپایلر تولید میشود.
CTS (Common Type System): سیستم نوعدهی مشترک بین زبانهای مختلف.
۲. تفاوت بین برنامهنویسی ساختیافته و شیگرا چیست؟
پاسخ:
برنامهنویسی ساختیافته: رویکرد خطی و مرحلهای، تقسیم برنامه به زیربرنامهها، مدیریت آسان خطاها.
برنامهنویسی شیگرا: مبتنی بر اشیاء و ارتباطات بین آنها، استفاده از مفاهیمی مانند وراثت، کپسولهسازی و چندریختی، قابلیت استفاده مجدد کد.
کد C# توسط کامپایلر به MSIL (کد میانی) تبدیل میشود.
MSIL توسط JIT (Just-In-Time) کامپایلر به کد محلی سیستم عامل تبدیل میشود.
کد محلی توسط CLR اجرا میشود.
۵. فضای نام (Namespace) در C# چه کاربردی دارد؟
پاسخ:
فضای نام برای سازماندهی و دستهبندی کلاسها و جلوگیری از تداخل نامها استفاده میشود.
مثال:
csharp
namespace MyApp {
class Program {
static void Main() {
Console.WriteLine("Hello World");
}
}
}
۶. متدها در C# چگونه دستهبندی میشوند و چگونه فراخوانی میشوند؟
پاسخ:
متدهای ایستا: بدون نیاز به ایجاد شی فراخوانی میشوند.
مثال: ClassName.MethodName();
متدهای غیر ایستا: نیاز به ایجاد شی دارند.
مثال: ClassName obj = new ClassName(); obj.MethodName();
۷. قالبهای پروژه پرکاربرد در Visual Studio کدامند؟
پاسخ:
Console Application: برنامههای متنی تحت کنسول.
Windows Forms Application: برنامههای ویندوزی با رابط گرافیکی.
ASP.NET Web Application: برنامههای تحت وب.
Class Library: کتابخانههای قابل استفاده در پروژههای دیگر.
۸. اجزای اصلی صفحه طراحی ویژوال در Visual Studio چیست؟
پاسخ:
فرم (Form): نمای ظاهری برنامه.
Solution Explorer: مدیریت پروژهها و فایلها.
Properties: تنظیم خواص فرم و کنترلها.
Toolbox: عناصر بصری برای طراحی فرم.
۹. پنجره خواص (Properties) چه کاربردی دارد؟
پاسخ:
پنجره Properties برای تنظیم خواص فرم و کنترلها مانند رنگ، فونت، متن و غیره استفاده میشود.
۱۰. رویدادها در برنامهنویسی ویندوز فرم چگونه مدیریت میشوند؟
پاسخ:
رویدادها با استفاده از متدهای event handler مدیریت میشوند.
مثال:
csharp
private void button1_Click(object sender, EventArgs e) {
MessageBox.Show("Button Clicked");
}
۱۱. چگونه میتوان از کنترلهای پرکاربرد در طراحی فرم استفاده کرد؟
پاسخ:
با کشیدن و رها کردن کنترلها از Toolbox به فرم و تنظیم خواص آنها.
مثال:
Button: برای ایجاد دکمه.
TextBox: برای دریافت ورودی کاربر.
Label: برای نمایش متن.
۱۲. نحوه استفاده از فضای نام در C# را با مثال توضیح دهید.
پاسخ:
با استفاده از using میتوان به فضای نام دسترسی پیدا کرد.
مثال:
csharp
using System;
namespace MyApp {
class Program {
static void Main() {
Console.WriteLine("Hello World");
}
}
}
۱۳. ویژگیهای زبان برنامهنویسی C# چیست؟
پاسخ:
شیگرا.
سطح بالا و ساده.
پشتیبانی از کتابخانههای گسترده.
قابلیت اجرا بر روی پلتفرمهای مختلف.
۱۴. نقش CLR در چارچوب دات نت چیست؟
پاسخ:
CLR (Common Language Runtime) مسئول اجرای کد، مدیریت حافظه، مدیریت نخها و ارائه خدمات دیگر به برنامهها است.
۱۵. چگونه میتوان یک برنامه کنسول ساده در C# ایجاد کرد؟
پاسخ:
در Visual Studio، یک پروژه جدید از نوع Console Application ایجاد کنید.
کد زیر را در فایل Program.cs بنویسید:
csharp
using System;
namespace MyApp {
class Program {
static void Main() {
Console.WriteLine("Hello World");
}
}
}