گرفتن ورودی از کاربر

چارچوب دات نت تعدادی متد برای گرفتن ورودی از کاربر در اختیار شما قرار می‌دهد. حال می‌خواهیم درباره متد ()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());

توجه داشته باشد که این متد برای تبدیل رشته به رقم استفاده می‌شود یعنی رشته‌ای که توسط کاربر تایپ می‌شود باید فقط عدد باشد.

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر و اگر سوالی دارید در بخش پرسش و پاسخ مطرح بفرمایید.

  1. علی پاسخ دادن

    عالی بود

  2. سی پلاس پاسخ دادن

    سلام خیلی عالی تشکر از شما و مطالب مفیدی که قرار می دید.

    • یونس ابراهیمی پاسخ دادن

      سلام،خواهش می کنم ، لطف دارین

  3. منصور پاسخ دادن

    سلام خیلی مفید بود تشکر

    • یونس ابراهیمی پاسخ دادن

      سلام، لطف دارین

  4. صلاح پاسخ دادن

    اقا خستع نباشید
    من میخوام به چند تا متغیر از یک ورودی مقدار بدم باید چی کار کنم؟

    • یونس ابراهیمی پاسخ دادن

      سلام، ممنون
      اول اینکه ممنون میشم سوالاتتونو تو بخش پرسش و پاسخ سایت مطرح بفرمایید
      دوم، ورودی هاتون از چه نوعی هستن؟ یعنی همهشون از نوع int ن یا نوعشون با هم فرق می کنه؟

      • صلاح پاسخ دادن

        معذرت مدیر
        نه نوعاشون فرق میکنه…تو محیط کنسول هم هست