Jeff Mosawy
- مقدمه
در هفت بخش قبلی از آموزش سیشارپ، شما بیشتر در حال آشنایی با خود برنامه Visual Studio بودهاید و شاید کمتر کدنویسیای در آن وجود داشت. اما اکنون، با شروع مبحث متغیرها (Variables)، بیشتر به سمت کدنویسی خواهیم پرداخت.
- معرفی متغیرها و شروع به پروژه جدید
اصولاً نرمافزاری که تهیه میشود، با استفاده از اطلاعاتی که در درون حافظه قرار دارد، کار میکند. این بخش از حافظه که توسط نرمافزار تهیه وکنترل میشود تا اطلاعاتی را درون آن ذخیره کنیم را با نام متغیر میشناسیم.
در واقع، متغیر همانند ظرفی است که در درون آن، با توجه به نوعی که قبلاً به آن دادهایم، میتواند عدد، کارکتر یا یک رشته از کارکترها (Strings) را در درون خود ذخیره کند.
در این بخش از آموزش، ما به شما نحوه ایجاد و تعریف انواع متغیرها، نحوهی استفاده از آنها و دیگر موارد مرتبط را آموزش خواهیم داد؛ فعلاً با متغیر رشته (Strings) آموزش را شروع میکنیم.
اولین نوع از متغیرها، متغیر String میباشد. متغیر String همیشه یک متن (Text) است. ما سعی خواهیم کرد که یک برنامهی کوچکی بنویسیم که یک Text را توسط جعبهمتن (TextBox) از طریق صفحه کلید دریافت، آن را در متغیر ذخیره و سپس توسط یک جعبهپیغام (Message Box) متن وارد شده را به ما اعلام کند.
ابتدا یک پروژهی جدید از نوع Windows Application بسازید. اگر پروژهای از قبل دارید، آن را کاملاً ببندید. هنگامی که پروژهی جدید شما ساخته میشود، یک Form خالی برایتان نشان داده خواهد شد. حال، یک Button بر روی فرم خود قرار دهید. به بخش Properties مربوط به Button خود بروید و Propertyهای زیر را به مقدار مشخص شده (با رعایت حروف بزرگ و کوچک) تغییر دهید.
Name: btnStrings
Location: ۹۰, ۱۷۵
Size: ۱۲۰, ۳۰
Text: Get Text Box Data
فرم شما باید شکلی به همانند تصویر زیر داشته باشد.

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

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

اکنون به Properties مربوط بهLabel مراجعه کنید و Property های زیر را تغییر دهید:
Location: ۱۰, ۵۰
Text: Name
شما نیازی برای تغییر Size نخواهید داشت؛ چرا که Visual Studio بهصورت خودکار، آن را با اندازهی متن وارد شده هماهنگ میکند. اکنون Form شما این شکل خواهد بود:

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

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

اگر دقت کرده باشید، حتماً متوجه شدهاید که با تکان دادن ابزارها، خطوطی برای تنظیم محل قرارگیری برای شما نمایان میشوند. شما با استفاده از این خطوط، خواهید توانست که ابزارهای مورد نظر خود را بهصورت زیباتر و البته منظمتری در کنار هم قراردهید.
اکنون وقت آن رسیده است که شروع به کدنویسی بکنیم. پیش از هرکاری، ابتدا پروژه خود را ذخیره کنید. به منوی File مراجعه کنید و سپس بر روی Save All کلیک کنید.
از آنجایی که ما میخواهیم با کلیک کردن بر Button مورد نظرمان، عملیات مورد انتظار ما انجام شود، پس میبایست که کدهایمان را در درون button قرار دهیم. خوب، دوبار بر روی button کلیک کنید تا وارد بخش کدهای مربوط به button شوید.

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

دقت کنید که کلمه string بهصورت خودکار به رنگ آبی تغییر یافت. این بدان معناست که کلمه string جزو تقریباً ۸۰ کلمهی رزرو شده در سیشارپ میباشد. کلمات رزرو شده در سیشارپ که اصطلاحاً به آنها Keywords (کلمات کلیدی( میگویند بدین معنا هستند که این کلمات در سیشارپ وظیفهی مشخصی را دارند و نمیتوان آنها را بهعنوان نام متغیر (یا درآینده Class و …) انتخاب نمود. دیگر کلمات کلیدی مهم در سیشارپ کلمات زیر میباشند:
Private, public, protected, int, float, double, class, virtual, this, …
در هنگام انتخاب نام متغیر، یکسری قوانینی وجود دارد که میبایست حتماً آنها را رعایت کنید. بطور کلی شما متغیرتان میتواند هرنامی که دوست داشته باشید، دارا باشد اما چند قانونی هست که میبایست در ذهن داشته باشید که مهمترین آنهایی که در خاطر دارم بهشرح زیر است:
- نام متغیر نباید جزو کلمات رزرو شده در سیشارپ باشد. اگر هنگام انتخاب نام متغیری، دیدید که رنگ آن تغییر پیدا کرد، پس باید از آن صرف نظر کنید.
- نام متغیر نباید که با عدد شروع شود. مثل: 1firstName
- استفاده از کارکترهای ویژه در نام متغیر مجاز نیست. مانند: firstName&
- نباید که فاصلهای میان نام متغیرها ایجاد شود. مانند: first Name
اینها مواردی بود که در خاطرم مانده است.
بریم سراغ اصل کاری! بعد از اینکه شما متغیر خود را تعریف نمودهاید، نوبت به استفاده از آن رسید. وقتی که شما به متغیر خود یک نام میدهید، میخواهید هنگام استفاده توسط آن نام آن را صدا بزنید. (مثل اینکه شما صاحب بچهای شدید و با نامی که به او اعطا میکنید، از آن لحظه به بعد او را صدا میزنید و زود بچهتان حواسش به شما جمع میشود. :D)
پس کد زیر را در زیر کد قبلی بنویسید:
firstName = textbox1.Text;
کدتان باید بهشکل زیر باشد:

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

نشانگر موس خود را بر روی آن نگه دارید؛ خواهید دید که 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 کلیک کنید. اینطور خواهد شد:

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