در رابطه با چهار عمل اصلی ریاضی بطور کامل و کوتاه بحث شد و اکنون میبایست که بطور کامل فراگرفته باشید که چگونه در سیشارپ دو (یا چند) عدد را با هم جمع، از هم تفریق، با یکدیگر ضرب و تقسیم کنید. تنها موردی که باقی میماند نحوه دریافت یک عدد از یک Text Box میباشد و در نهایت خواهیم توانست که یک پروژهی ساده ماشینحساب را با هم شروع کنیم.
نحوه دریافت عدد از Text Box و ذخیره آن در متغیر
ذخیره محتوای داخل یک Text Box در یک متغیر String بهراحتی امکانپذیر بود. فرض کنید که یک Text Box با نام txtBox1 و یک متغیر از نوع String با نام strText داشته باشیم. برای ذخیره محتوای داخل Text Box در متغیر کد آن بدین شکل بود:
strText = txtBox1.Text;
اما در رابطه با عدد چطور؟ اولاً یک شماره هم میتواند عدد باشد، هم میتواند یک متن. مثلاً داخل جعبه متن میتوانید بنویسید ۲۳ و در در داخل متغیر اینگونه جمع خواهد شد:
strText = “۲۳”;
اما اینگونه ذخیره عدد بدرد ما نخواهد خورد! زیرا در عملیات ریاضی جمع دو عدد که به شکل string باشند امکانپذیر نیست و باید دو عدد از نوع int، float یا … باشد.
پس ابتدا برای شروع یک پروژه جدید از نوع Windows Application بسازید. یک button و یک Text Box قرار دهید و Property های Text Box به شکل ذیل باشد:
Name: tbFirstName
Size: 50, 20
Location: 40, 30
Text: 10
و Property های button به شکل زیر باشد:
Name: btnAnswer
Size: 75, 25
Location: 90, 90
Text: Answer
شکل فرم شما اینطور خواهد بود:
کاری که میخواهیم انجام دهیم این است که عدد ۱۰ را به شکل int دریافت کنیم و در یک متغیر از نوع int ذخیره کنیم. چون قصد داریم این اتفاقات با کلیک بر روی button انجام شوند، پس دوبار بر روی Button کلیک کنید و وارد بخش کدنویسی شوید. دو متغیر زیر را تعریف کنید:
int firstTextBoxNumber;
int answer;
همانند تصویر زیر:
برای اینکه محتوای وارد شده در TextBox را دریافت کنیم، کد زیر را مثل همیشه وارد کنید:
firstTextBoxNumber = tbFirstNumber.Text;
این کد میگوید: یک Text Box با نام tbFirstNumber را پیدا کن، وارد property با نام Text آن شو، وقتی که به Text آن دسترسی پیدا کردی، محتوای آن را وارد متغیر firstTextBoxNumber کن.
برای نمایش عدد وارد شده در Text Box در یک Message Box، کد زیر را وارد کنید:
MessageBox.Show(firstTextBoxNumber.ToString());
کدتان را اجرا کنید … سیشارپ به شما اجازه اجرا نخواهد داد و خطای زیر را خواهید دید:
اگر متوجه شده باشید، این خطا میگوید که شما نمیتوانید یک مقدار string را به یک مقدار int تبدیل کنید! اگر بخاطر داشته باشید ما قبلاً گفتیم که مقداری که وارد یک Text Box میشود، هرطور آن را وارد کنید (چه عدد خالی، چه متن خالی و چه مختلط) آخرسر یک مقدار String خواهد بود و سیشارپ این قابلیت را ندارد که یک مقدار string را به int تبدیل کند.
راه حل این مشکل، استفاده از یک شیء به نام Parse است. خدا را شکر این شیء، هیچ چیز عجیبی نیست و هیچ سختیای جز نوشتن کلمه Parse برای برنامهنویس ندارد! اکنون چون ما میخواهیم که از یک مقدار خاص از هر نوعی، به یک نوع معلومی (در اینجا میخواهیم به int) تبدیل کنیم، ما باید از int.Parse استفاده کنیم. پس کدتان را بهشکل زیر تغییر دهید:
firstTextBoxNumber = int.Parse(tbFirstNumber.Text);
کدتان را اجرا کنید و شاهد نتیجه درست آن باشید!
این نکته را دقت کنید که حتی میتوانید یک string مستقیم که حاوی عدد است را به int تبدیل کنید؛ مثلاً به کد زیر دقت کنید:
int aRandomNumber;
aRandomNumber = int.Parse(“۱۰”);
این کد بدین شکل عمل میکند که شماره ۱۰ از نوع string را دریافت میکند و به عدد ۱۰ تبدیل میکند.
یک Text Box دیگر اضافه کنید و Property های آن را بهشکل زیر تنظیم کنید:
Name: tbSecondNumber
Size: 50, 20
Location: 165, 35
Text: 5
فرم شما بدیل شکل خواهد بود:
مجدداً با دابل-کلیک بر روی button، وارد بخش کدنویسی شوید. یک متغیر دیگر از نوع int با نام secondTextBoxNumber تعریف کنید. برای ذخیره سازی عدد از Text Box دوم، کد زیر را بنویسید:
secondTextBoxNumber = int.Parse(tbSecondNumber.Text);
اکنون بیایید با هم جمع دو متغیری که عددهای اول و دوم را از Text Box های اول و دوم را دریافت میکنند در متغیر answer ذخیره کنیم:
answer = firstTextBoxNumber + secondTextBoxNumber;
با استفاده از یک MessageBox، مقدار answer را نمایش میدهیم:
MessageBox.Show(answer.ToString());
تمامی کدها باید به شکل زیر نوشته شدهباشند:
نرمافزار خود را اجرا کنید؛ شما باید جمع دو عدد وارد شده را در یک Message Box مشاهده کنید:
تمرینهای زیر را سعی کنید انجام دهید تا در جلسه بعد که شروع یک پروژه جدی (ماشینحساب) خواهد بود، آماده باشید:
تمرین: سعی کنید Text Box های دیگری را تعریف کرده و با استفاده از آنها، عملیات حسابی دیگری همانند تفریق، ضرب، تقسیم و مخلوطی از آنها را با هم انجام دهید