اجازه بدهید یک برنامه بسیار ساده به زبان سی شارپ بنویسیم. این برنامه یک پیغام را در محیط کنسول نمایش میدهد. در این درس میخواهم ساختار و دستور زبان یک برنامه ساده سی شارپ را توضیح دهم. برنامه Visual Studio Community را اجرا کنید. از مسیر File > new project یک پروژه جدید ایجاد کنید.
گزینه Console application را انتخاب کرده و نام پروژهتان را myfirst program بگذارید. یک Console application برنامه ای تحت داس در محیط ویندوز است و فاقد محیط گرافیکی میباشد. بهتر است برنامه خود را در محیط کنسول بنویسید تا بیشتر با مفهوم برنامه نویسی آشنا شوید. بعد از اینکه آموزش مبانی زبان به پایان رسید، برنامه نویسی در محیط ویندوز و بخش بصری سی شارپ را آموزش خواهیم داد. بعد از فشردن دکمه OK، برنامه Visual C-sharp یک solution در یک فولدر موقتی ایجاد میکند. یک solution مجموعه ای از پروژههاست، اما در بیشتر تمرینات شامل یک پروژه میباشد. فایل solution دارای پسوند .sln میباشد و شامل جزییاتی در مورد پروژهها و فایلهای وابسته به آن میباشد. پروژه جدید همچنین حاوی یک فایل با پسوند .csproj میباشد که آن نیز شامل جزییاتی در مورد پروژهها و فایلهای وابسته به آن میباشد. حال میخواهیم شما را با محیط کد نویسی آشنا کنیم.
محیط کدنویسی جایی است که ما کدها را در آن تایپ میکنیم. کدها در محیط کدنویسی به صورت رنگی تایپ میشوند، در نتیجه تشخیص بخشهای مختلف کد را راحت میکند. منوی سمت چپ (شماره 1) شامل نام پروژه ای که ایجاد کردهاید، منوی وسط (شماره 2) شامل لیست کلاسها، ساختارها، انواع شمارشی و منوی سمت راست (شماره 3) شامل اعضای کلاسها، ساختارها، انواع شمارشی و… میباشد. نگران اصطلاحاتی که به کار بردیم نباشید آنها را در فصول بعد توضیح خواهم داد. همه فایلهای دارای کد در سی شارپ دارای پسوند .cs هستند.
1 namespace MyFirstProgram
2 {
3 class Program
4 {
5 static void Main()
6 {
7 System.Console.WriteLine("Welcome to Visual C# Tutorials!");
8 }
9 }
10 }
مثال بالا سادهترین برنامه ای است که شما میتوانید در سی شارپ بنویسید. هدف در مثال بالا نمایش یک پیغام در صفحه نمایش است. هر زبان برنامه نویسی دارای قواعدی برای کدنویسی است. اجازه بدهید هر خط کد را در مثال بالا توضیح بدهیم. در خط اول فضای نام (namespace) تعریف شده است که شامل کدهای نوشته شده توسط شما است و از تداخل نامها جلوگیری میکند. درباره فضای نام در درسهای آینده توضیح خواهیم داد
در خط دوم آکولاد (}) نوشته شده است. آکولاد برای تعریف یک بلوک کد به کار میرود. سی شارپ یک زبان ساخت یافته است که شامل کدهای زیاد و ساختارهای فراوانی میباشد. هر آکولاد باز (}) در سی شارپ باید دارای یک آکولاد بسته ({) نیز باشد. همه کدهای نوشته شده از خط 2 تا خط 10 یک بلوک کد یا بدنه فضای نام است.در خط 3 یک کلاس تعریف شده است. درباره کلاسها در فصلهای آینده توضیح خواهیم داد. در مثال بالا کدهای شما باید در داخل یک کلاس نوشته شود. بدنه کلاس شامل کدهای نوشته شده از خط 4 تا 9 میباشد. خط 5 متد ()Main یا متد اصلی نامیده میشود. هر متد شامل یک سری کد است که وقتی اجرا میشوند که متد را صدا بزنیم. درباره متد و نحوه صدا زدن آن در فصول بعدی توضیح خواهیم داد. متد Main نقطه آغاز اجرای برنامه است. این بدان معناست که ابتدا تمام کدهای داخل متد ()Main و سپس بقیه کدها اجرا میشود. درباره متد ()Main در فصول بعدی توضیح خواهیم داد. متد ()Main و سایر متدها دارای آکولاد و کدهایی در داخل آنها میباشند و وقتی کدها اجرا میشوند که متدها را صدا بزنیم. هر خط کد در سی شارپ به یک سمیکالن (;) ختم میشود. اگر سمیکالن در آخر خط فراموش شود برنامه با خطا مواجه میشود. مثالی از یک خط کد در سی شارپ به صورت زیر است:
System.Console.WriteLine("Welcome to Visual C# Tutorials!");
این خط کد پیغام !Welcome to Visual C# Tutorials را در صفحه نمایش نشان میدهد. از متد ()WriteLine برای چاپ یک رشته استفاده میشود. یک رشته گروهی از کاراکترها است، که به وسیله دابل کوتیشن (“) محصور شده است. مانند:“ !Welcome to Visual C# Tutorials."
یک کاراکتر میتواند یک حرف، عدد، علامت یا … باشد. در کل مثال بالا نحوه استفاده از متد ()WriteLine است که در داخل کلاس Consoleکه آن نیز به نوبه خود در داخل فضای نام MyFirstProject قرار دارد را نشان میدهد. توضیحات بیشتر در درسهای آینده آمده است. سی شارپ فضای خالی و خطوط جدید را نادیده میگیرد. بنابراین شما میتوانید همه برنامه را در یک خط بنویسید. اما اینکار خواندن و اشکال زدایی برنامه را مشکل میکند. یکی از خطاهای معمول در برنامه نویسی فراموش کردن سمیکالن در پایان هر خط کد است. به مثال زیر توجه کنید:
System.Console.WriteLine("Welcome to Visual C# Tutorials!");
سی شارپ فضای خالی بالا را نادیده میگیرد و از کد بالا اشکال نمیگیرد. اما از کد زیر ایراد میگیرد.
System.Console.WriteLine("Welcome to Visual C# Tutorials!");
به سمیکالن آخر خط اول توجه کنید. برنامه با خطای نحوی مواجه میشود چون دو خط کد مربوط به یک برنامه هستند و شما فقط باید یک سمیکالن در آخر آن قرار دهید. همیشه به یاد داشته باشید که سی شارپ به بزرگی و کوچکی حروف حساس است. یعنی به طور مثال MANو man در سی شارپ با هم فرق دارند. رشتهها و توضیحات از این قاعده مستثنی هستند که در درسهای آینده توضیح خواهیم داد. مثلاً کدهای زیر با خطا مواجه میشوند و اجرا نمیشوند:
system.console.writeline("Welcome to Visual C# Tutorials!");
SYSTEM.CONSOLE.WRITELINE("Welcome to Visual C# Tutorials!");
sYsTem.cONsoLe.wRItelIne("Welcome to Visual C# Tutorials!");
تغییر در بزرگی و کوچکی حروف از اجرای کدها جلوگیری میکند. اما کد زیر کاملاً بدون خطا است:
System.Console.WriteLine("WELCOME TO VISUAL C# TUTORIALS!");
همیشه کدهای خود را در داخل آکولاد بنویسید.
{
statement1;
}
این کار باعث میشود که کدنویسی شما بهتر به چشم بیاید و تشخیص خطاها راحت تر باشد. یکی از ویژگیهای مهم سی شارپ نشان دادن کدها به صورت تو رفتگی است بدین معنی که کدها را به صورت تو رفتگی از هم تفکیک میکند و این در خوانایی برنامه بسیار مؤثر است.
برای ذخیره پروژه و برنامه میتوانید به مسیر File > Save Allبروید یا از کلیدهای میانبر Ctrl+Shift+S استفاده کنید. همچنین میتوانید از قسمت Toolbarبر روی شکل
کلیک کنید. برای ذخیره یک فایل ساده میتوانید به مسیر (File > Save(FileName بروید یا از کلیدهای میانبر Ctrl+S استفاده کنید. همچنین میتوانید از قسمت Toolbar بر روی شکل
کلیک کنید. برای باز کردن یک پروژه یا برنامه از منوی File گزینه Open را انتخاب میکنید یا بر روی آیکون
در Toolbar کلیک کنید. سپس به محلی که پروژه در آنجا ذخیره شده میروید و فایلی با پسوند sln یا پروژه با پسوند .csproj را باز میکنید.
همانطور که قبلاً ذکر شد، کدهای سی شارپ قبل از اجرا، ابتدا به زبان میانی ترجمه میشوند. برای کامپایل برنامه از منوی Debug گزینه BuildSolution را انتخاب میکنید یا دکمه F6 را بر روی صفحه کلید فشار میدهیم. این کار همه پروژههای داخل solutions را کامپایل میکند. برای کامپایل یک قسمت از solution به Solution Explorer و بر روی آن قسمت راست کلیک کرده و از منوی باز شوند گزینه build را انتخاب میکنید. مانند شکل زیر:

وقتی ما برنامه مان را اجرا میکنیم سی شارپ به صورت اتوماتیک کدهای ما را به زبان میانی مایکروسافت کامپایل میکند. دو راه برای اجرای برنامه وجود دارد:
اجرا همراه با اشکال زدایی (Debug)
اجرا بدون اشکال زدایی (Non-Debug)
اجرای بدون اشکال زدایی برنامه، خطاهای برنامه را نادیده میگیرد. با اجرای برنامه در حالت Non-Debug سریعاً برنامه اجرا میشود و شما با زدن یک دکمه از برنامه خارج میشوید. در حالت پیش فرض حالت Non-Debug مخفی است و برای استفاده از آن میتوان از منوی Debug گزینه Start Without Debug را انتخاب کرد یا از دکمههای ترکیبی Ctrl+F5 استفاده نمود:
Welcome to Visual C# Tutorials!
Press any key to continue...
به این نکته توجه کنید که پیغام ...Press any key to continue جز خروجی به حساب نمیآید و فقط نشان دهنده آن است که برنامه در حالت Non-Debug اجرا شده است و شما میتوانید با زدن یک کلید از برنامه خارج شوید. دسترسی به حالت Debug Mode آسان تر است و به صورت پیشفرض برنامهها در این حالت اجرا میشوند. از این حالت برای رفع خطاها و اشکال زدایی برنامهها استفاده میشود که در درسهای آینده توضیح خواهیم داد. شما همچنین میتوانید از break points و قسمت Helps برنامه در مواقعی که با خطا مواجه میشوید استفاده کنید. برای اجرای برنامه با حالت Debug Mode میتوانید از منوی Debug گزینه Start debugging را انتخاب کرده و یا دکمه F5 را فشار دهید. همچنین میتوانید بر روی شکل
در Toolbar کلیلک کنید. اگر از حالت Debug Mode استفاده کنید برنامه نمایش داده شده و فوراً ناپدید میشود. برای جلوگیری از این اتفاق شما میتوانید از کلاس و متد ;()System.console.readkey برای توقف برنامه و گرفتن ورودی از کاربر جهت خروج از برنامه استفاده کنید. (درباره متدها در درسهای آینده توضیح خواهیم داد.)
namespace MyFirstProgram
{
class Program
{
static void Main()
{
System.Console.WriteLine("Welcome to Visual C# Tutorials!");
System.Console.ReadKey();
}
}
}
حال برنامه را در حالت Debug Mode اجرا میکنیم. مشاهده میکنید که برنامه متوقف شده و از شما در خواست ورودی میکند، به سادگی و با زدن دکمه Enter از برنامه خارج شوید. من از حالت Non-Debug به این علت استفاده کردم تا نیازی به نوشتن کد اضافی ()Console.readkey نباشد. از این به بعد هر جا ذکر شد که برنامه را اجرا کنید برنامه را در حالت Non-Debug اجرا کنید. وقتی به مبحث استثناءها رسیدیم از حالت Debug استفاده میکنیم.
فضای نام (Namespace) در برگیرنده کدهایی است که شما در برنامهتان از آنها استفاده میکنید. در برنامه فوق ما یک فضای نام در برنامه مان با نام MyFirstProgram داریم، اما دات نت دارای هزاران فضای نام میباشد. یکی از این فضاهای نامی، فضای نام System است که شامل کدهایی است که در یک برنامه ابتدایی #C به کار میروند. کلاس Console که ما از آن در برنامه بالا استفاده کردیم در این فضای نام قرار دارد.
System.Console.WriteLine("Welcome to Visual C# Tutorials!");
System.Console.ReadKey();
اینکه قبل از استفاده از هر کلاس ابتدا فضای نام آن را مانند کد بالا بنویسیم کمی خسته کننده است. خوشبختانه دات نت به ما اجازه میدهد که برای جلوگیری از تکرار مکررات، فضاهای نامی را که قرار است در برنامه استفاده کنیم با استفاده از دستور using در ابتدای برنامه وارد نماییم:
using namespace;
دستور بالا نحوه وارد کردن یک فضای نام در برنامه را نشان میدهد. در نتیجه به جای آنکه به صورت زیر ابتدا نام فضای نام و سپس نام کلاس را بنویسیم:
System.Console.WriteLine("Hello World!");
میتوانیم فضای نام را با دستوری که ذکر شد وارد برنامه کرده و کد بالا را به صورت خلاصه شده زیر بنویسیم:
Console.WriteLine("Hello World");
دستورات using که باعث وارد شدن فضاهای نامی به برنامه میشوند عموماً در ابتدای برنامه و قبل از همه کدها نوشته میشوند، پس برنامهی این درس را میتوان به صورت زیر نوشت:
using System;
namespace MyFirstProgram
{
class Program
{
static void Main()
{
Console.WriteLine("Welcome to Visual C# Tutorials!");
Console.ReadKey();
}
}
}
هنگامی که یک برنامه در ویژوال استودیو ایجاد میکنید، اگر وجود برخی از فضاهای نام الزامی نباشد، ویژوال استودیو 2017 آنها را به صورت کم رنگ نمایش میدهد، و شما میتوانید بدون هیچ مشکلی این فضاهای نام را پاک کنید:

در نسخههای قبلی ویژوال استودیو هم برای پاک کردن فضاهای نام غیر قابل استفاده، ابتدا بر روی یکی از آنها راست کلیک کرده و سپس بر روی Remove and Sort Usings کلیک کنید:

اگر از کلاسی استفاده کنید که از قبل فضای نام مربوط به آن را وارد برنامه نکرده باشید در زیر آن کلاس خط قرمز کشیده میشود:

برای رفع این مشکل، اگر از قبل نام فضای مربوطه را بلد باشید که باید آن را در قسمت فضای نام وارد کنید. در غیر اینصورت، بر روی نام کلاس با ماوس کمی مکث کنید تا یک پنجره popup ظاهر شده و آن را به شما معرفی کند:

در این صورت با کلیک بر روی آن، ویژوال استودیو به طور خودکار فضای نام را وارد برنامه میکند:

در مورد فضای نام در درسهای آینده بیشتر توضیح میدهیم. حال که با خصوصیات و ساختار اولیه سی شارپ آشنا شدید در درسهای آینده مطالب بیشتری از این زبان برنامه نویسی قدرتمند خواهید آموخت.
منبع:w3_farsi.com
برچسب:
نویسنده: زهرا نوروزی