آموزش سی‌شارپ C# – بخش ۸

آموزش سی‌شارپ C# – بخش ۸
  • 1391/11/1
  • Jeff Mosawy
  • 19
  • مقدمه

در هفت بخش قبلی از آموزش سی‌شارپ، شما بیشتر در حال آشنایی با خود برنامه Visual Studio بوده‌اید و شاید کمتر کدنویسی‌ای در آن وجود داشت. اما اکنون، با شروع مبحث متغیرها (Variables)، بیشتر به سمت کدنویسی خواهیم پرداخت.

  • معرفی متغیرها و شروع به پروژه جدید

اصولاً نرم‌افزاری که تهیه می‌شود، با استفاده از اطلاعاتی که در درون حافظه قرار دارد، کار می‌کند. این بخش از حافظه که توسط نرم‌افزار تهیه وکنترل می‌شود تا اطلاعاتی را درون آن ذخیره کنیم را با نام متغیر می‌شناسیم.

در واقع، متغیر همانند ظرفی است که در درون آن، با توجه به نوعی که قبلاً به آن داده‌ایم، می‌تواند عدد، کارکتر یا یک رشته از کارکترها (Strings) را در درون خود ذخیره کند.

در این بخش از آموزش، ما به شما نحوه ایجاد و تعریف انواع متغیرها، نحوه‌ی استفاده از آن‌ها و دیگر موارد مرتبط را آموزش خواهیم داد؛ فعلاً با متغیر رشته (Strings) آموزش را شروع می‌کنیم.

اولین نوع از متغیرها، متغیر String می‌باشد. متغیر String همیشه یک متن (Text) است. ما سعی خواهیم کرد که یک برنامه‌ی کوچکی بنویسیم که یک Text را توسط جعبه‌متن (TextBox) از طریق صفحه کلید دریافت، آن را در متغیر ذخیره و سپس توسط یک جعبه‌پیغام (Message Box) متن وارد شده را به ما اعلام کند.

ابتدا یک پروژه‌ی جدید از نوع Windows Application بسازید. اگر پروژه‌ای از قبل دارید، آن را کاملاً ببندید. هنگامی که پروژه‌ی جدید شما ساخته می‌شود، یک Form خالی برایتان نشان داده خواهد شد. حال، یک Button بر روی فرم خود قرار دهید. به بخش Properties مربوط به Button خود بروید و Property‌های زیر را به مقدار مشخص شده (با رعایت حروف بزرگ و کوچک) تغییر دهید.

Name: btnStrings

Location: 90, 175

Size: 120, 30

Text: Get Text Box Data

فرم شما باید شکلی به همانند تصویر زیر داشته باشد.

1-Form_Button

اکنون شما می‌بایست که ۲ شیء دیگر اضافه کنید؛ اول- یک Label و دوم- یک Text Box. وقتی که Button کلیک می‌خورد، متن داخل Text Box را می‌گیرد و در یک Message Box نمایش می‌دهد.

یک Label نیز، همانطور که از نامش پیداست، برچسبی است که معمولاً در کنار اشیاء و ابزارها قرار می‌گیرد که وظیفه شیء مورد نظر را به کاربر اعلام کند. همانطور که یک Button را اضافه کرده‌اید، به ToolBox مراجعه کنید و یک Label قرار دهید.

2-Toolbox_Label

حال فرم شما شکلی مانند زیر دارد:

3-Form_Labels

اکنون به Properties مربوط بهLabel  مراجعه کنید و Property های زیر را تغییر دهید:

Location: 10, 50

Text: Name

شما نیازی برای تغییر Size نخواهید داشت؛ چرا که Visual Studio به‌صورت خودکار، آن را با اندازه‌ی متن وارد شده هماهنگ می‌کند. اکنون Form شما این شکل خواهد بود:

4-Form_Labels2

تنها کاری که باقی می‌ماند، اضافه کردن یک Text Box است. به ToolBox برگردید و یک Text Box اضافه کنید:

5-Form_TextBox

به‌جای اینکه این‌بار از طریق Properties مقدار Location را تغییر دهیم، با استفاده از موس خود و با نگه‌داشتن کلید سمت چپ، آن را دقیقاً در مقابل Label اضافه شده قرار دهید:

6-Form_TextBox2

اگر دقت کرده باشید، حتماً متوجه شده‌اید که با تکان دادن ابزارها، خطوطی برای تنظیم محل قرارگیری برای شما نمایان می‌شوند. شما با استفاده از این خطوط، خواهید توانست که ابزارهای مورد نظر خود را به‌صورت زیباتر و البته منظم‌تری در کنار هم قراردهید.

اکنون وقت آن رسیده است که شروع به کدنویسی بکنیم. پیش از هرکاری، ابتدا پروژه خود را ذخیره کنید. به منوی File مراجعه کنید و سپس بر روی Save All کلیک کنید.

از آنجایی که ما می‌خواهیم با کلیک کردن بر Button مورد نظرمان، عملیات مورد انتظار ما انجام شود، پس می‌بایست که کدهایمان را در درون button قرار دهیم. خوب، دوبار بر روی button کلیک کنید تا وارد بخش کدهای مربوط به button شوید.

7-Button_Code

الان ما باید یک متغیر از نوع String تعریف کنیم. به‌طور کلی، در سی‌شارپ هنگامی که بخواهیم یک متغیر جدید تعریف کنیم، اول باید نوع آن را به Visual Studio اعلام کنیم و در ادامه‌ی آن، به آن نامی (دلخواه) بدهیم. پ در اینجا ما می‌خواهیم یک متغیر از نوع String تعریف کنیم و نامش را می‌خواهم firstName قرار دهم. پس می‌نویسیم:

string firstName;

نقطه-ویرگول (semicolon) را در انتها فراموش نکنید! پس داریم:

8-Button_String_FirstName

دقت کنید که کلمه string به‌صورت خودکار به رنگ آبی تغییر یافت. این بدان معناست که کلمه string جزو تقریباً ۸۰ کلمه‌ی رزرو شده‌ در سی‌شارپ می‌باشد. کلمات رزرو شده در سی‌شارپ که اصطلاحاً به آن‌ها Keywords (کلمات کلیدی( می‌گویند بدین معنا هستند که این کلمات در سی‌شارپ وظیفه‌ی مشخصی را دارند و نمی‌توان آن‌ها را به‌عنوان نام متغیر (یا درآینده Class و …) انتخاب نمود. دیگر کلمات کلیدی مهم در سی‌شارپ کلمات زیر می‌باشند:

Private, public, protected, int, float, double, class, virtual, this, …

در هنگام انتخاب نام متغیر، یک‌سری قوانینی وجود دارد که می‌بایست حتماً آن‌ها را رعایت کنید. بطور کلی شما متغیرتان می‌تواند هرنامی که دوست داشته باشید، دارا باشد اما چند قانونی هست که می‌بایست در ذهن داشته باشید که مهم‌ترین آن‌هایی که در خاطر دارم به‌شرح زیر است:

  1. نام متغیر نباید جزو کلمات رزرو شده در سی‌شارپ باشد. اگر هنگام انتخاب نام متغیری، دیدید که رنگ آن تغییر پیدا کرد، پس باید از آن صرف نظر کنید.
  2. نام متغیر نباید که با عدد شروع شود. مثل: 1firstName
  3. استفاده از کارکترهای ویژه در نام متغیر مجاز نیست. مانند: firstName&
  4. نباید که فاصله‌ای میان نام متغیرها ایجاد شود. مانند: first Name

این‌ها مواردی بود که در خاطرم مانده است.

بریم سراغ اصل کاری! بعد از اینکه شما متغیر خود را تعریف نموده‌اید، نوبت به استفاده از آن رسید. وقتی که شما به متغیر خود یک نام می‌دهید، می‌خواهید هنگام استفاده توسط آن نام آن را صدا بزنید. (مثل اینکه شما صاحب بچه‌ای شدید و با نامی که به او اعطا می‌کنید، از آن لحظه به بعد او را صدا می‌زنید و زود بچه‌تان حواسش به شما جمع می‌شود. :D)

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

firstName = textbox1.Text;

کدتان باید به‌شکل زیر باشد:

9-Button_String_FirstName2

وقتی که شما می‌خواهید مقداری را در متغیر ذخیره کنید، آن را در سمت چپ علامت مساوی قرار می‌دهید. مقدار بعد از مساوی، مقداری خواهد بود که در درون متغیر لحاظ می‌شود. در این مثال ما می‌خواهید که Text مربوط به textbox1 را داخل متغیر firstName ذخیره کنیم. (متوجه شدید که چه اتفاقی افتاد؟)

اگر حواستان جمع باشد، یک مشکلی وجود دارد! یک نگاهی به کدهایتان بندازید؛ زیر textbox1 یک خط آبی وجود دارد!

10-Error_BlueLine

نشانگر موس خود را بر روی آن نگه دارید؛ خواهید دید که Visual Studio خطا را به‌صورت زیر برای شما شرح می‌کند:

The name ‘textbox1’ does not exist in the current context.

Visual Studio تصور می‌کند که ما چیزی به نام textbox1 نداریم؛ خوب واقعاً هم نداریم! جعبه‌متنی که ما در برنامه‌ی خودمان قرار دادیم نامش textBox1 است! همیشه دقت کنید که در سی‌شارپ حروف بزرگ و کوچک خیلی مهم هستند و سی‌شارپ این دو را دو شیء متفاوت تلقی می‌کند. خوب، از این بگذریم، فقط کافیست که اگر اشتباه بالا را انجام داده‌اید، آن را اصلاح کنید تا خط آبی‌رنگ زیر textbox1 از بین برود.

خوب، همانطور که در بالا ذکر کردیم، بعد از آنکه متغیر firstName را تعریف کردیم، در خط بعدی توانستیم که از آن استفاده کنیم؛ بدین صورت که به سی‌شارپ دستور دادیم که مقدار بعد از علامت مساوی ‘=’ را در firstName ذخیره کند.

دقت کنید که متغیر ما از نوع رشته تعریف شده‌است، پس ما فقط خواهیم توانست که مقادیری که متن‌گونه هستند (text) را در این متغیر و متغیرهای امثال آن ذخیره کنیم. به‌این دلیل ما با اضافه کردن .text به انتهای textBox1 به سی‌شارپ اعلام کردیم که ما می‌خواهیم متن وارد شده در جعبه‌متن را در متغیر ذخیره کنیم.

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

MessageBox.Show(firstName);

در رابطه با متد MessageBox.Show() قبلاً به اندازه کافی صحبت کرده‌ایم. پرانتز موجود در این متد هم می‌تواند خود متن را از برنامه‌نویس دریافت کند (که باید همراه با دابل-کوتیشن double-quotes همراه باشد)، و یا اینکه متغیری را دریافت کند که از همان جنس متن (رشته یا String) باشد. پس ما اصطلاحاً به متد MessageBox.Show، متغیر firstName را پاس داده‌ایم.

برنامه خود را اجرا کنید. در جعبه متن کلمه‌ای را وارد کنید و سپس بر روی Get Text Box Data کلیک کنید. اینطور خواهد شد:

11-messagebox_show

تا اینجا که به‌نظر من خیلی خوب پیش‌رفته‌اید! حتماً کسانی که دوست دارند سی‌شارپ یا کلاً هر زبان برنامه‌نویسی دیگری را یاد بگیرند، قطعاً لذت این بخش‌ها را خواهند چشید. امیدوارم که تا اینجا مطالب آموزشی به‌نحو احسن پیش برده باشم.

ما را از نظرات و پیشنهادتان محروم نسازید. درصورت مواجه شدن با هرگونه سوال در زمینه آموزش سی‌شارپ، حتماً در بخش نظرات با ما درمیان بگذارید!

جهت دریافت فایل PDF این بخش آموزشی، اینجا را کلیک کنید!

دیدگاه خود را وارد کنید
تعداد دیدگاه ها : 19 دیدگاه
  1. سری آموزش جالب و خوبی رو شروع کردین.
    تا این لحظه مرتب دنبالش کردم
    ولی کاش پایان هر جلسه یه تمرین هم در نظر می‌گرفتین

    1. سلام دوست عزیزم،

      ممنونم از نظر لطف شما. برای من واقعاً خیلی ارزشمند هست که افرادی مثل شما مطلب من رو قابل دانستید و آن را دنبال می‌کنید.
      در رابطه با قرار دادن تمرین، پیشنهاد بسیار خوبی هست! سعی می‌کنم از جلسات آتی، تمرینی رو در نظر بگیرم.

      سپاسگذارم از شما!

  2. سلام.فکر نمیکنید سرعت پیشروی یه کم کنده؟!
    من قبلا کار کردم یه خورده اینجوری خیلی طول میکشه تا به جایی برسه
    با سپاس از زحماتتوت-کارتون خیلی ارزش داره

    1. سلام دوست عزیز،

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

      در نهایت، اگر تقصیر و کوتاهی از جانب بنده است، از شما می‌خواهم که عذرم را پذیرا باشید.
      ممنونم از شما که وقت ارزشمندتان را در اختیار بنده قرار می‌دهید و علاوه بر مطالعه مطالب بنده، تجربیات گرانبهای خودتان را در اختیارم قرار می‌دهید.
      موفق باشید!

  3. درود بر شما
    نزدیک ب سه ساعت تو اینترنت دنبال یه سایت بودم که آموزش سی شارپو خوب گذاشته باشه ولی هیچ کدوم باب میلم نبود تا آموزشای شما رو دیدم
    !واقعا متشکر
    من خودم معلم برنامه نویسی هستم ولی از آموزشای شما خیلی مطالب فوق العاده ای گرفتم
    بازم متشکرم و امیدوارم آموزش به دیگران را ادامه بدی!
    موفق باشی

    1. سلام دوست عزیزم،

      خوشحالم که آموزش‌هایی که سایت گویا آی‌تی برای شما قرار داده باب میل شما و دیگر دوستان بود. انشاءالله که همینطور باقی خواهد ماند، تا سطح‌های پیشرفته‌تر.
      موفق باشید!

  4. سلام .اول اینکه شما رو تحسین می کنم.دوم اینکه چرا وقی من یه کدی می نویسم و اجرا می کنم،بعدش می خوام مثلا یه لیبل اضافه کنم یا برنامه رو گشترش بم ، باز هم برنامه کاره قبلی خودش رو انجام میده،و تغییرات جدید رو قبول نمیکنه.انگار قفل شده باشه:(

    1. سلام دوست عزیز،

      نباید همچین مشکلی باشه؛ تا حالا با چنین مشکلی اصلاً روبرو نشدم. شما یک بار پروژه‌ی جدید دیگری بسازید و امتحان کنید.
      موفق باشید!

  5. سلام من وقتی که به این بخش رسیدم دیدم که یه اروری گرفتش توی دو خط
    String firstname;
    firstname = TextBox1.Text
    بعد دقت کردم که من الان تو vb.netهستم و رفتم قسمت سی شارپو پیدا کنم اما نیست !!!!!
    چیکار باید کنم aspxهست vb.netهست با چند تا چیز دیگه

    1. سلام دوست عزیز،
      این کدها فقط مختص سی‌شارپ هست و در محیط دیگری کار نمی‌کنند. احتمالاً نسخه Visual Studio شما دارای پشتیبانی از سی‌شارپ نیست. برای اینکار نسخه Visual Studio C# Express و یا Visual Studio Ultimate رو تهیه بفرمایید.
      موفق باشید!

  6. سلام خوبین
    الان تو یه سایت دیدم دقیقا آموزش شمارو گذاشته بودن
    این صفحه رو ببینید

    www.mspsoft.com/1392/07/03/آموزش-سی-شارپ-جزئیات-بیشتر-کار-با-messagebox/

    بعد زیرش زده هدیه مومن نژاد شهریور 92

    چه ادم بی شعوریه

    منم چه ادم پیگیرو فضولی ام
    :))

  7. سلام
    از آموزش های خوبتون ممنونم
    مشخصاتی که برای فروم دادید رو قبول نمیکنه در ضمن علامت بینشون هم”;” هست نه”:”
    Location: 90, 175

    Size: 120, 30

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

  9. سید جان من یه مشکلی که دارم اینکه وقتی name را تغییر میدم تو قسمت propertiecs، بعد روی button کلیک می کنم و داخل برنامه کد می رم می ببینم که name تغییر کرده؟
    ممنون میشم راهنماییم کنید.

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *