گرفتن ورودی از کاربر
چارچوب دات نت تعدادی متد برای گرفتن ورودی از کاربر در اختیار شما قرار میدهد. حال میخواهیم درباره متد ()ReadLine یکی دیگر از متدهای کلاس Console بحث کنیم که یک مقدار رشتهای را از کاربر دریافت میکند. متد ()ReadLine فقط مقدار رشتهای را که توسط کاربر نوشته میشود را بر میگرداند. همانطور که از نام این متد پیداست، تمام کاراکترهایی را که شما در محیط کنسول تایپ میکنید تا زمانی که دکمه enter را میزنید میخواند. هر چه که در محیط کنسول تایپ میشود از نوع رشته است. برای تبدیل نوع رشته به انواع دیگر میتوانید از کلاس Convert و متدهای آن استفاده کنید. به برنامه زیر توجه کنید :
1: using System; 2: 3: public class Program 4: { 5: public static void Main() 6: { 7: string name; 8: int age; 9: double height; 10: 11: Console.Write("Enter your name: "); 12: name = Console.ReadLine(); 13: Console.Write("Enter your age: "); 14: age = Convert.ToInt32(Console.ReadLine()); 15: Console.Write("Enter your height: "); 16: height = Convert.ToDouble(Console.ReadLine()); 17: 18: //Print a blank line 19: Console.WriteLine(); 20: 21: //Show the details you typed 22: Console.WriteLine("Name is {0}.", name); 23: Console.WriteLine("Age is {0}.", age); 24: Console.WriteLine("Height is {0}.", height); 25: } 26: }
Enter your name: John Enter your age: 18 Enter your height: 160.5 Name is John. Age is 18. Height is 160.5.
ابتدا 3 متغیر را برای ذخیره داده در برنامه تعریف میکنیم (خطوط 7 و 8 و 9). برنامه از کاربر میخواهد که نام خود را وارد کند (خط 11). در خط 12 شما به عنوان کاربر نام خود را وارد میکنید. مقدار متغیر نام، برابر مقداری است که توسط متد ReadLine() خوانده میشود. از آنجاییکه نام از نوع رشته است و مقداری که از متد ReadLine() خوانده میشود هم از نوع رشته است در نتیجه نیازی به تبدیل انواع نداریم.
سپس برنامه از ما سن را سؤال میکند (خط 13). سن، متغیری از نوع صحیح (int) است، پس نیاز است که ما تبدیل از نوع رشته به صحیح را انجام دهیم. بنابراین از کلاس و متد Convert.ToInt32() برای این تبدیل استفاده میکنیم (خط 14). مقدار بازگشتی از این متد در متغیر سن قرار میگیرد. چون متغیر قد (height) را از نوع double تعریف کردهایم برای تبدیل رشته دریافتی از محیط کنسول به نوع double باید از متد و کلاس Convert.ToDouble() استفاده کنیم (خط 16). علاوه بر آنچه گفته شد شما میتوانید از متد ()parse برای تبدیلهای بالا استفاده کنید، مانند:
age = int.Parse(Console.ReadLine()); height = double.Parse(Console.ReadLine());
توجه داشته باشد که این متد برای تبدیل رشته به رقم استفاده میشود یعنی رشتهای که توسط کاربر تایپ میشود باید فقط عدد باشد.