خاصية "User Input" أو "إدخال المستخدم" في لغة C# تسمح للبرنامج بالتفاعل مع المستخدم واستقبال البيانات منه أثناء تشغيل البرنامج. هذه الخاصية ضرورية لبناء تطبيقات تفاعلية ومرنة. هناك عدة طرق لاستقبال مدخلات المستخدم في C#، وأهمها:

1. Console.ReadLine():

  • هذه هي الطريقة الأكثر شيوعًا لقراءة سطر كامل من النص المُدخل من المستخدم.
  • تقوم الدالة بإرجاع قيمة نصية (string) تمثل ما أدخله المستخدم.
  • إذا لم يُدخل المستخدم أي شيء وضغط على Enter، فستُرجع الدالة سلسلة نصية فارغة ("").

مثال:

C#
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 يحتوي على معلومات حول المفتاح المضغوط (مثل قيمة المفتاح ورموزه).
  • تُستخدم عادةً لالتقاط أوامر بسيطة من المستخدم، مثل الضغط على مفتاح للخروج من البرنامج.

مثال:

C#
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()‎ وغيرها.

مثال على تحويل المُدخلات:

C#
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()، بالإضافة إلى دوال تحويل البيانات، يمكنك استقبال مُدخلات المستخدم بأنواع مختلفة والتعامل معها بكفاءة. من المهم أيضًا التعامل مع الأخطاء المحتملة أثناء تحويل المُدخلات لضمان استقرار البرنامج.