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

آموزش سی شارپ

آموزش سی شارپ

پربیننده ترین مطالب
پیوندهای روزانه

۲۴ مطلب در فروردين ۱۳۹۶ ثبت شده است

در قسمت قبلی آموزش در مورد خصوصیات یا Property ها و نحوه صحیح استفاده از آنها در کلاس ها صحبت کردیم. در این بخش در مورد سازنده ها یا Constructors، مقدار دهی اولیه اشیاء (Object Initialization) و نوع های بدون نام (Anonymous Types) صحبت می کنیم.

زمانی که شما کلاسی را تعریف می کنید، این کلاس حاوی یکسری خصوصیات و یکسری رفتارها یا همان متدها می باشد. شما بعد از ایجاد شئ، خصوصیات را مقدار دهی کرده و از شئ استفاده می کنید. اما چندین راه دیگر برای مقدار دهی خصوصیات و آماده سازی اولیه کلاس وجود دارد. ما در این قسمت دو روش مختلف را بررسی می کنیم:

  1. مقدار دهی اولیه شئ یا Object Initialization
  2. استفاده از سازنده ها یا Constructors

در قسمت قبلی آموزش، در مورد فیلدها و نحوه تعریف آنها در کلاس آشنا شدیم، اما گاهی اوقات نیاز داریم که بر روند مقداردهی و گرفتن مقدار یک فیلد نظارت داشته باشیم. زمانی که یک فیلد تعریف می کنیم، عملیات انتساب مقدار و گرفتن مقدار به صورت مستقیم از داخل فیلد انجام شده و امکان انجام هیچ گونه نظارتی بر روی این عملیات ها وجود ندارد. برای رفع این مشکل، دو راه وجود دارد:

  1. استفاده از متدها برای ست کردن و گرفتن مقدار از فیلد.
  2. استفاده از Property ها

افرادی که با زبان جاوا آشنا هستند با متدهای get و set در کلاس ها آشنایی دارند. این متدها عملیات خواندن و نوشتن در فیلدها را برای ما انجام می دهند. مثالی از زبان سی شارپ می زنیم. کلاس Person را در نظر بگیرید:

public class Person
{
    public string FirstName;
    public string LastName;
}

در قسمت قبلی آموزش زبان سی شارپ با مفاهیمی مانند کلاس، شئ، فضای نام و دستور using آشنا شدیم. در این قسمت ابتدا شیوه تعریف کلاس و شئ را مروری کوتاه کرده و سپس به بررسی شیوه تعریف فیلد و رفتار در کلاس خواهیم پرداخت.

با کلاس Person شروع می کنیم که در قسمت قبل کلاسی با نام Person ایجاد کردیم. شیوه تعریف این کلاس به صورت زیر بود:

public class Person
{
}

بعد از ایجاد کلاس باید از روی آن یک شئ یا اصطلاحاً Instance یا نمونه بسازیم:

Person person = new Person();

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

var person = new Person();

در قسمت قبلی آموزش زبان سی شارپ، به بررسی مفاهیم اولیه برنامه نویسی شئ گرا پرداختیم. در ادامه، بر اساس مفاهیم گفته شده در قسمت قبل، به صورت عملی با نحوه تعریف کلاس ها، ایجاد اشیاء از روی کلاس ها و همچنین نحوه تعریف فیلد، خصوصیت و رفتارها برای اشیاء آشنا خواهیم شد.

همانطور که در قسمت قبل گفتیم، زمانی که قصد نوشتن برنامه ای به صورت شئ گرا را داریم، باید موجودیت های مورد استفاده را در برنامه مدل سازی کنیم. این موجودیت ها همان اشیاء هستند که در سیستم مورد استفاده قرار میگیرند. اما شیوه مدل سازی و استفاده از اشیاء چگونه خواهد بود؟ در اینجا باید با دو مفهوم آشنا شویم: 1. کلاس ها و 2. اشیاء.

  1. کلاس: نمونه ای از یک شئ که داخل برنامه طراحی می شود را کلاس می گویند. برای اینکه با مفهوم کلاس بیشتر آشنا شوید یک مثال از دنیای واقعی می زنیم. فرض کنید تصمیم به ساخت یک خانه دارید. اولین چیزی که به آن نیاز خواهید داشت نقشه خانه ایست که تصمیم دارید بسازید. نقشه یک طرح اولیه و مفهومی از ساختمان به شما می دهد و بعد از روی نقشه اقدام به ساخت خانه می کنید. نقشه شامل تمامی بخش های خانه است، اطاق پذیرایی، آشپزخانه، حمام، سرویس بهداشتی و سایر بخش ها. اما فقط یک نقشه در اختیار دارید. نمی توانید از اطاق پذیرایی داخل نقشه استفاده کنید. کلاس دقیقاً معادل نقشه ای است که شما برای ساختمان خود کشیده اید. کلاس یک نمونه اولیه از موجودیت ایست که باید اشیاء از روی آن ساخته شوند.
  2. شئ: باز هم به سراغ مثال قبلی می رویم. بعد از کشیدن نقشه ساختمان شما باید اقدام به ساخت خانه کنید. بعد از اتمام عملیات ساخت، خانه شما قابل سکونت بوده و شما می توانید از آن استفاده کنید. همچنین از روی یک نقشه ساختمانی می توان چندین ساختمان ساخت. شئ دقیقاً معادل همان مفهوم ساختمانی است که از روی نقشه ساخته شده است. شما بعد از اینکه کلاس را تعریف کردید، باید از روی کلاس شئ بسازید تا بتوانید از آن استفاده کنید. در حقیقت کلاس به صورت مستقیم قابل استفاده نیست، مگر اینکه شامل اعضای static باشد که در بخش های بعدی با آنها آشنا خواهیم شد. همچنین می توان از روی یک کلاس، یک یا چندین شئ تعریف کرد.

حال که با مفاهیم اولیه کلاس و شئ آشنا شدید، بهتر است با نحوه تعریف کلاس و ساخت شئ آشنا شویم. تعریف کلاس بوسیله کلمه کلیدی class در زبان C# انجام می شود. ساختار کلی این دستور به صورت زیر است:

با سلام . در قسمت های قبلی سری آموزشی زبان برنامه نویسی سی شارپ، با مفاهیم ابتدایی این زبان و دستورات کاربردی اولیه مانند متغیرها، حلقه ها، دستوران کنترلی و متدها آشنا شدیم. در ادامه بر اساس مباحث مطرح شده، وارد دنیای برنامه نویسی شئ گرا خواهیم شد. همانطور که اکثر شما می دانید، زبان سی شارپ یک زبان شئ گرا یا Object Oriented Programming Language می باشد. اما برنامه نویسی شئ گرا چیست؟ چرا ما از زبان های شئ گرا استفاده می کنیم؟ مفاهیمی مانند شئ و کلاس در زبان های شئ گرا چه کاربردی دارند و چندین سوال دیگر که در ادامه سری آموزشی سی شارپ قصد داریم به این سوالات پاسخ داده و شما را با برنامه نویسی شئ گرا و مفاهیم های مرتبط با آن آشنا کنیم. پس در ادامه دوره آموزشی سی شارپ با ما همراه باشید.

در قسمت قبلی سری آموزش سی شارپ در مورد نحوه تعریف و استفاده از متدها صحبت کردیم. در ادامه مبحث متدها را ادامه داده و با برخی از ویژگی های مربوط به متدها آشنا خواهیم شد. مواردی که در این قسمت مورد بررسی قرار خواهند گرفت عبارتند از:

  1. آشنایی با کلمات کلیدی ref و out
  2. استفاده از آرایه به عنوان ورودی و خروجی متد
  3. آشنایی با کلمه کلیدی params
  4. قابلیت method overloading و کاربرد آن
  5. نوشتن توابع بازگشتی

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

  1. شیوه تعریف متدها
  2. پارامترها و مقادیر بازگشتی
  3. آشنایی با عبارات ref و out
  4. آشنایی با مفهوم method overloading
  5. نوشتن توابع بازگشتی (Recursive Functions)

در بخش قبلی آموزش زبان سی شارپ با دستورات کنترلی و حلقه ها آشنا شدیم. در این بخش قصد داریم با مبحث آرایه ها و دستور foreach آشنا شویم. همانطور که در قسمت آشنایی با متغیرها گفتیم، یک متغیر خانه ای از حافظه است که می توان مقداری را در داخل آن ذخیره کرد. برای مثال دستور زیر متغیری از نوع string و با نام name تعریف کرده و مقدار neetbook را داخل آن قرار می دهد:


string name = "neetbook";

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

{type}[] numbers = new {type}[{length}];

ا سلام به دوستان عزیز در وبلاگ neetbook، بخش چهارم از قسمت هشتم سری آموزشی سی شارپ را با هم آغاز می کنیم. در بخش قبلی به بررسی کلی حلقه ها و دستور for پرداختیم. در بخش چهارم که بخش آخر قسمت هشتم می باشد، به بررسی دستورات while و do-while پرداخته و حلقه های نامحدود یا infinite-loops را با هم بررسی خواهیم کرد.همانطور که در بخش قبلی گفتیم، حلقه ها برای تکرار اجرای یک یا چند دستور مورد استفاده قرار می گیرند. یکی از دستوراتی که با آن می توانیم در کد حلقه ایجاد کنیم دستور for می باشد که در بخش قبلی با این دستور آشنا شدیم. دستور بعدی دستور while می باشد. تفاوت این دستور با دستور for در این است که در ساختار while عملیات تعریف متغیر انجام نمی شود و تنها یک شرط را برای خروج از حلقه باید مشخص کنیم. ساختار کلی دستور while به صورت زیر است:

در دو بخش قبلی به بررسی دستوران کنترلی پرداختیم. در بخش سوم از قسمت هشتم سری آموزشی، به بررسی حلقه ها و دستور for خواهیم پرداخت. اما حلقه ها چه کاربردهایی دارند؟ خیلی از اوقات، نیاز داریم قطعه ای از کد چندین بار تکرار شود. برای مثال، فرض کنید میخواهیم اعداد 1 تا 100 را چاپ کنیم. راه حل چیست؟ صد بار پشت سر هم دستور Console.WriteLine را بنویسیم؟؟؟!!! صد در صد اینطور نیست. در اینجور مواقع باید از حلقه ها استفاده کنیم. حلقه ها به ما این قابلیت را می دهند که دستوراتی را به تعداد دلخواه تکرار کنیم. حلقه ها را در دو بخش مورد بررسی قرار خواهیم داد. در بخش اول به بررسی دستور for پرداخته و در بخش بعدی به بررسی دستورات while و do-while می پردازیم. در ابتدا، ساختار کلی دستور for را با هم بررسی می کنیم. بوسیله دستور for می توان یک قطعه از کد را تعداد دلخواهی که مد نظر داریم اجرا کنیم. ساختار کلی این دستور به شکل زیر است: