آموزش مقدماتی زبان برنامه نویسی #C

آموزش برنامه نویسی #Ca

آموزش زبان برنامه نویسی #C

سی شارپ یک زبان برنامه نویسی سطح بالا از زبان های برنامه نویسی چارچوب دات نت است. این زبان در ابتدا COOL سپس در سال ۲۰۰۰ مایکروسافت آن را به #C تغییر نام داد. این زبان یک زبان عمومی برنامه نویسی است. تعدادی از دلایلی که این زبان را به یک زبان حرفه ای برای استفاده تبدیل می کند شامل موارد زیر است:

  • یک زبان برنامه نویسی برای اهداف عمومی
  • شی گرا
  • مولفه گرا
  • آسان در آموزش
  • زبان ساخت یافته
  • نوشتن برنامه کارا
  • استفاده در چندین سکو
  • بخشی از چارچوب دات نت مایکروسافت

اگرچه سی شارپ به زبان های سنتی سی و سی++ وابسته است و به زبان جاوا شباهت دارد، اما این زبان دارای خصوصیات خاص به خود است. تعدادی از این خصوصیات شامل مدیریت خودکار حافظه، کتابخانه های استاندارد، رویدادها و خاصیت ها، استفاده آسان از نوع عمومی، LINQ و Lambda و یکپارچه شده با ویندوز است. برنامه های نوشته شده با این زبان با چارچوب دات نت قابل اجرا هستند، که در حال حاضر این چارچوب فقط برای ویندوز ارایه می شود. اما پروژه مونو تلاش می کند تا این چارچوب را به محیط لینوکس و سیستم عامل های مبتنی بر یونیکس ببرد، با همه موفقیت های پروژه مونو اما برنامه ها در این محیط به خوبی محیط ویندوز کار نمی کنند.

اولین نسخه ارایه شده همراه با چارچوب دات نت توسط مایکروسافت برای این زبان در سال ۲۰۰۲ بود. از آن زمان تاکنون بهبودها و خصوصیات جدیدی بر روی این زبان انجام می شده است. آخرین نسخه ارایه شده زبان سی شارپ نسخه ۵ است، که همراه با نسخه ۲۰۱۲ محیط توسعه ویژوال استیودیو ارایه شد. محیط توسعه ویژوال استیودیو یک مجیط قدرتمند برنامه نویسی است که از تمام زبانهای مورد پشتیبانی چارچوب دات نت پشتیبانی می کند. این محیط دارای توانایی ها و مشخصات زیاد و ابزار برنامه نویسی مختلف از جمله برنامه تحت وب، سیستم عامل ویندوز و ویندوز موبایل است.

در این آموزش ، سعی بر این داشتیم تا آموزشی ساده و قابل فهم و جدا از هرگونه حاشیه پردازی و گزافه گویی برای شما کاربران سایت top2download اراِئه دهیم . امید است که مورد قبول شما عزیزان واقع شود تا بتوانیم در ادامه با آموزش های دیگر و سطح بالاتری از این زبان قدرتمند برنامه نویسی با شما همراه باشیم.این آموزش در 5 قسمت ارائه می شود.

نرم افزار مورد نیاز برای آموزش زبان برنامه نویسی :C#

Microsoft Visual Studio 2015

که میتوانید برای دانلود آن از آدرس زیر اقدام کنید :

دانلود نرم افزار Microsoft Visual Studio 2015

حال به آموزش اجرای یک برنامه در محیط برنامه برای کدزنی میپردازیم.پس از نصب ، نرم افزار را اجرا کنید:

بر روی New Project کلیک کنید:

سپس مسیر زیر رو دنبال کنید :

Installed->Templates->Visual C#->Windows

حال از گزینه های نمایش داده شده ، Console Application رو انتخاب کنید . سپس در تب Name نام پروژه خود را ب صورت دلخوه وارد کنید . از گزینه ی Browse هم میتوانید برای انتخاب محل ذخیره پروژه خود استفاده کنید.حال بر روی OK بزنید .

حالا میریم سراغ قسمت اول آموزش:

  • یک زبان برنامه ‌نویسی سطح بالا و چند الگویی است که از شیء گرایی نیز پشتیبانی می کند.
  • از خانواده زبان c است.
  • یک زبان cross-platform است.
  • در سال 2000 معرفی شد.

 

دستورات داخل C# از مجموعه ی خوش تعریفی از قوانین پیروی می کنند که قالب بندی و ساختارشان را توصیف می کند. این قوانین مجموعا دستور زبان (syntax) نامیده می شود. ( در عوض توصیف اینکه دستورات چه کاری را انجام می دهند در مجموعه semantic (معنا) نامیده میشوند. یکی از ساده ترین و مهمترین قوانین دستورات زبانی C# بیان می کند که شما باید تمامی دستورات را به یک نقطه ویرگول (;) ختم نمایید.به عنوان مثال :

 

;int x = 0

به کارگیری شناسه ها

  • شناسه ها نام هایی هستند که شما برای شناسایی عناصر داخل برنامه هایتان بکار می برید نظیر namespace ها ،کلاس ها ، متدها و متغیرها. در C# شما باید از قوانین دستور زبانی زیر هنگام انتخاب شناسه ها پیروی کنید:
  • شما فقط می توانید از حروف ( حروف بزرگ و کوچک)، ارقام و کاراکتر زیر خط استفاده کنید.
  • یک شناسه باید با یک حرف یا یک زیرخط شروع شود.

برای مثال، result, _scope , footballTeam  و plan9 همگی شناسه های معتبری هستند. در حالیکه  result% ، footballTeam$ و 9plan مجاز نمی باشند.

مهم: C# یک زبان حساس به بزرگی و کوچکی حروف است : FootballTeam  و footballTeam شناسه مشابهی نیستند.

 

 

  • زبان سیشارپ ، 77 شناسه را برای کاربر خودش رزرو کرده است و شما نمی توانید از این شناسه ها برای مقاصد خودتان استفاده کنید. این شناسه ها کلمات کلیدی ( keyword)  نامیده می شوند و هر کدام دارای معنای خاصی هستند.

 

true

protected in do abstract
try public int double as
typeof readonly interface else base
uint ref internal enum bool
ulong return is event break
unchecked sbyte lock explicit byte
unsafe sealed long exterm case
ushort short namespace false catch

 

 

 

در قسمت های بعدی آموزش با یکسری از این شناسه ها آشنا خواهیم شد.

نام گذاری متغیر ها

  • شما باید از روشی برای نامگذاری متغیرها استفاده کنید که به شما کمک کند تا از تداخل متغیرهایی که تعریف کرده اید جلوگیری نماید. لیست زیر شامل برخی توصیه های عمومی است :
  • تا آنجا که می توانید سعی کنید شناسه هایی که فقط در بزرگی و کوچکی حروف تفاوت دارند را ایجاد نکنید. برای مثال، یک متغیر را myVariable  و دیگری را  MyVariable ننامید. زیرا به سادگی باعث سردرگمی شما می شوند.
  • نکته: استفاده از شناسه هایی که فقط در بزرگی و کوچکی تفاوت دارند می توانند استفاده مجدد از کلاسها در برنامه هایی که با استفاده از سایر زبانهایی توسعه داده میشوند که حساس به کوچکی و بزرگی حروف نیستند را محدود کنند، نظیر Visual Basic مایکروسافت.به عنوان مثال MyVariable و myVariable  در سی شارپ دو شناسه متفاوت ولی در Visual Basic دو شناسه یکسان هستند ، در واقع یک شناسه هستند.
  • برای نامگذاری شناسه ها از قواعد مجارستانی، camelCase، PascalCase و غیره به صورت مناسب استفاده کنید . فایل Naming Conventions در ادامه ی همین آموزش را مطالعه بفرمایید.

عملگر و عملوند

  • C# از عملگرهای معمولی ریاضی که در بچگی یاد گرفته اید پشتیبانی می کند. علامت (+) برای جمع، علامت منها (-) برای تفریق ، ستاره (*) برای ضرب و اسلش ( / ) برای تقسیم. نمادهای + ، – ، * و / اصطلاحا عملگر (operator) نامیده می شوند. زیرا آن ها بر روی مقادیر برای ایجاد مقادیر جدید «عمل» می کنند.
;long a;                                 int b = 30

;a= 750 * 20;                       int c = b + 50
  • نکته: مقادیری که یک عملگر بر روی آن ها عمل می نماید عملوند (operand) نامیده می شوند. در عبارت 750 * 20 ، * عملگر و 20 و750 عملوند هستند.
private  int  AddValues(int a, int b)

}

;int  sum

;sum= a + b

;return sum

{

 

 

دستور زبان تعریف متد

 نکته:برای کامنت گذاری در هنگام کد نویسی ابتدا // گذاشته سپس بعد از آن کامنت میگزاریم.کامنت ها جزء خطوط کد به حساب نمیان و توسط کامپایلر کامپایل نمیشوند و فقط در صورت لزوم برای اضافه کردن توضیح برای فهم بهتر کد برای افراد دیگر نوشته می شوند.

returnType  MethodName ( parameterList )

}

   (بدنه ی متد، کد دستوری) // method body statements go here

{

 

 

مثال:متد اول :

int addValues ( int a, int b)

}

//…

;return a+ b

{

 

 

متد دوم :(با مفهومprivate بعدا آشنا خواهید شد.)

private void showResult( int answer )

}

 console.writeline…

{

 

 

فراخوانی متد ها

یک تعریف کلی از یک کلاس ، به عنوان مثال کلاسِ ماشین ؛ همه ی ماشین ها در ، کاپوت ، بوق ، چرخ ، موتور ، صندلی ، رنگ  و … دارند . اینها خصوصیات مشترک همه ی ماشین ها هستند که اونها رو در یک مجموعه تحت عنوان کلاسِ ماشین قرار می دهیم . حال با استفاده از یک شیء که از کلاس میگیریم ماشین هایی با رنگ های متفاوت ، سرعت متفاوت ، و … ایجاد می کنیم.این کلیت مفهوم کلاس بود برای درک بهتر ادامه ی آموزش (-;

 

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

به عنوان مثال متد زیر :

int addValues ( int a, int b)

}

//…

;return a+ b

{

 

 

شکل صحیح فراخوانی متد بالا :(به عنوان مثال ورودی های ما 30  و 40 هستند)

;AddValues(30,  40)

فراخوانی های اشتباه برای متد بالا :

;addValues

;()addValues

;addValues(30)

;addValues("30” , “ 40 “ )

نوع بازگشتی متد

فرض مثال متد زیر ؛ نوع بازگشتی متد زیر از نوع int  هست .

int addValues ( int a, int b)

}

//…

;return a+ b

{

 

 

منظور از نوع بازگشتی متد ، همون مقداری هستش که متد پس از محاسبات بر میگرداند. در متد بالا a+b هستش که با دستور return a+b;  مقدارش را برمیگرداند.

 

حوزه(Scope)

  • اگر متغیری را بتوان در یک مکان خاص داخل یک برنامه بکار برد گفته می شود که متغیر در scope ( محدوده ) آن مکان قرار دارد. برای اینکه همین مطلب را بگونه دیگری بیان کنیم محدوده یک متغیر فقط ناحیه ای از برنامه است که در آن ناحیه آن متغیر قابل استفاده است. محدوده ( scope ) بر روی متدها به علاوه ی متغیر ها اعمال می شود.حوزه با { شروع و با } تمام می شود. متغییری که درون این حوزه تعریف شود فقط در همین حوزه قابل استفاده است.
  • آکولاد باز و بسته ای که بدنه ی متد را تشکیل می دهند یک محدوده ( scope ) را تعریف می کنند. هر متغیری که در داخل بدنه یک متد تعریف می کنید به ان متد محدود می شود.
class Example

}

  Void FirstMethod()

   }

       ;int myVar

       …

   {

      ()Void AnotherMethod

    }

    (ارور میگه که متغیر توی محدوده نیست ، خارج از محدوده تعریف شده)       myVar = 42 ; // error – variable not in scope

      …

   {

{

 

 

 

  • آکولادهای باز و بسته ای که بدنه کلاس را تشکیل می دهند نیز یک محدوده ی ( scope ) را ایجاد می کنند. هر متغیری که در داخل بدنه یک کلاس تعریف می کنید ( اما نه در داخل یک متد ) به آن کلاس محدود شده است. به متغیرهایی که به وسیله یک کلاس تعریف می شوند یک field می باشد.
Class Example

}

;int myField = 0

()Void firstMethod

 }

   myField = 42 ; // ok

   …

  {

 Void anotherMethod()

 }

   myField++;// ok

   …

{

{

 

 

 

فضای نام

namespace MyApplication

}

    class Program

  }

        ()static void Main

       }

       {

  {

{

 

 

ساختار کلی یک برنامه در C#

  • هر برنامه ی سی شارپ می تواند شامل یک یا چند فایل باشد که هر فایل نیز می تواند شامل صفر یا چند فضای نام باشد. یک فضای نام خود می تواند شامل انواع عناصری مانند کلاس ها، struct ها، enum ها، interface ها، delegate ها و همچنین فضای نام های دیگری باشد. در ادامه یک نمونه از ساختار کلی یک برنامه سی شارپ آورده شده است.

 

 

 

namespace YourNamespace

}

    class YourClass

   }

{

    struct YourStruct

    }

    {

    interface IYourInterface

    }

    {

  ;()delegate int YourDelegate

    enum YourEnum

    }

    {

    namespace YourNestedNamespace

    }

struct YourStruct

        }

        {

    {

    class YourMainClass

    }

        static void Main(string[] args)

        }

            //Your program starts here...

        {

    {

{

 


متغییر ها می توانند انواع متفاوتی باشند . چند مورد از انواع پر کاربرد :int , double , char ,bool , string , …

متغییر از نوع int  : همان نوع عددی و مقداری هست . مثال:

;int x = 20

متغییر از نوع char : همان حرف میباشد . مثال:(برای نمایش از تک کوتیشن ‘ به شکل زیر استفاده شود )

;’char x = ‘m

متغییر از نوع string  : منظور یک جمله هستش .مثال: (برای نمایش از دابل کوتیشن ” به شکل زیر استفاده شود )

;”String x = “my name is Mehrdad

متغییر از نوع  bool : مقادیرِ true و false . مقادیر  0  و 1 .مثال:

;Bool x = true

if(x)

}

  Do this ...

{

else

}

Do this …

{

 

دستور bool x  میگه که مقدار متغییر x  ، true هستش . حال if میگه که اگه x ، true بود دستورات داخل if انجام بشه ، در غیر اینصورت ، ممکنه مقدار متغییر x ، داخل دستورات if  ، false  شده باشد پس دستورات داخل else  انجام میشه.اگه یکم مبهم بود ناراحت نباشید چون با کاربرد متغییر  bool توی کدنویسی و عملی کار کردن به راحتی آشنا میشید 😉

متغییر از نوع double  : شبیه متغییر از نوع int هستش با این تفاوت که مقادیر اعشاری رو هم میپذیرد.مثال :

;Double x = 12.56