خاصية "User Input" أو "إدخال المستخدم" في لغة C# تسمح للبرنامج بالتفاعل مع المستخدم واستقبال البيانات منه أثناء تشغيل البرنامج. هذه الخاصية ضرورية لبناء تطبيقات تفاعلية ومرنة. هناك عدة طرق لاستقبال مدخلات المستخدم في C#، وأهمها:
1. Console.ReadLine()
:
- هذه هي الطريقة الأكثر شيوعًا لقراءة سطر كامل من النص المُدخل من المستخدم.
- تقوم الدالة بإرجاع قيمة نصية (string) تمثل ما أدخله المستخدم.
- إذا لم يُدخل المستخدم أي شيء وضغط على Enter، فستُرجع الدالة سلسلة نصية فارغة ("").
مثال:
using System;
public class UserInputExample{ public static void Main(string[] args) { Console.Write("الرجاء إدخال اسمك: "); // عرض رسالة للمستخدم string name = Console.ReadLine(); // قراءة اسم المستخدم
Console.WriteLine("مرحباً يا " + name); // عرض رسالة ترحيبية }}
في هذا المثال، سيُطلب من المستخدم إدخال اسمه، ثم سيتم تخزين الاسم في المتغير name
، وأخيرًا سيتم عرض رسالة ترحيبية تتضمن الاسم المُدخل.
2. Console.ReadKey()
:
- تُستخدم لقراءة مفتاح واحد تم ضغطه من قبل المستخدم.
- تُرجع كائنًا من النوع
ConsoleKeyInfo
يحتوي على معلومات حول المفتاح المضغوط (مثل قيمة المفتاح ورموزه). - تُستخدم عادةً لالتقاط أوامر بسيطة من المستخدم، مثل الضغط على مفتاح للخروج من البرنامج.
مثال:
using System;
public class ReadKeyExample{ public static void Main(string[] args) { Console.WriteLine("اضغط على أي مفتاح للخروج..."); Console.ReadKey(); // انتظار ضغطة مفتاح }}
3. Console.Read()
:
- تُستخدم لقراءة حرف واحد من مُدخلات المستخدم.
- تُرجع قيمة عددية (int) تمثل رمز ASCII للحرف المُدخل.
- أقل استخدامًا من
ReadLine()
وReadKey()
في التطبيقات العادية.
تحويل أنواع المُدخلات:
نظرًا لأن Console.ReadLine()
تُرجع دائمًا قيمة نصية، فقد تحتاج إلى تحويلها إلى أنواع بيانات أخرى، مثل الأعداد الصحيحة أو العشرية، باستخدام الدوال int.Parse()
أو double.Parse()
أو Convert.ToInt32()
أو Convert.ToDouble()
وغيرها.
مثال على تحويل المُدخلات:
using System;
public class InputConversionExample{ public static void Main(string[] args) { Console.Write("الرجاء إدخال عمرك: "); string ageString = Console.ReadLine();
try { int age = int.Parse(ageString); // تحويل النص إلى عدد صحيح Console.WriteLine("عمرك هو: " + age); } catch (FormatException) { Console.WriteLine("خطأ: الرجاء إدخال رقم صحيح."); } }}
في هذا المثال، يتم استخدام try-catch
للتعامل مع أي أخطاء قد تحدث أثناء عملية التحويل، مثل إدخال المستخدم نصًا بدلاً من رقم.
ملخص:
تُعتبر خاصية "User Input" أساسية في لغة C#، وتُمكنك من بناء تطبيقات تفاعلية. باستخدام الدوال Console.ReadLine()
و Console.ReadKey()
و Console.Read()
، بالإضافة إلى دوال تحويل البيانات، يمكنك استقبال مُدخلات المستخدم بأنواع مختلفة والتعامل معها بكفاءة. من المهم أيضًا التعامل مع الأخطاء المحتملة أثناء تحويل المُدخلات لضمان استقرار البرنامج.