في محاولتك لتحقيق هذا الهدف، يمكنك استخدام التحقق من حالة الـ RadioButton ومن ثم استخدام قيم الـ Enum لتحديد الحالة المختارة. لديك Enum يسمى TypeTimer في الفئة Person.cs، ولديك RadioButton في الفئة Form.cs. سنقوم بربط هذه العناصر لضمان تحديد الحالة المطلوبة بناءً على الاختيار في واجهة المستخدم.
في Form.cs، يمكنك تحديد الحالة المختارة في الـ RadioButton وتمريرها كمعامل إلى مُنشئ الفئة Person. لديك ثلاثة حالات للتحقق منها: Unlimited، Countdown، وLimited.
csharpprivate void button1_Click(object sender, EventArgs e)
{
TypeTimer selectedTimer;
if (rbtnNormalTimer.Checked)
{
selectedTimer = TypeTimer.Unlimited;
}
else if (rbtnCountDown.Checked)
{
selectedTimer = TypeTimer.Countdown;
}
else if (rbtnLimited.Checked)
{
selectedTimer = TypeTimer.Limited;
}
else
{
// يمكنك تعيين قيمة افتراضية هنا أو إشعار بأنه لم يتم اختيار أي خيار
return;
}
// الآن يمكنك إنشاء كائن Person باستخدام القيمة المحددة
Person person = new Person(selectedTimer);
}
ثم في فئة Person.cs، يمكنك تنفيذ التبديل الذي يتحقق من القيمة الممررة:
csharppublic class Person
{
public enum TypeTimer { Unlimited, Countdown, Limited }
public Person(TypeTimer s1)
{
switch (s1)
{
case TypeTimer.Unlimited:
// اكتب الكود هنا لحالة Unlimited
break;
case TypeTimer.Countdown:
// اكتب الكود هنا لحالة Countdown
break;
case TypeTimer.Limited:
// اكتب الكود هنا لحالة Limited
break;
default:
// اكتب الكود هنا إذا كنت بحاجة إلى تنفيذ شيء آخر لم تتوقعه
break;
}
}
}
بهذه الطريقة، يمكنك تحديد الحالة المختارة في واجهة المستخدم واستخدامها لتكوين كائن Person بناءً على الحالة المختارة، ثم يتم تنفيذ الكود المناسب في التبديل داخل الفئة Person.
المزيد من المعلومات
بالتأكيد، سنوسع قليلاً في المعلومات لضمان فهم أفضل للموضوع.
في الشيفرة التي قمت بتقديمها، لديك Enum يسمى TypeTimer
في فئة Person.cs
. هذا Enum يمثل ثلاثة حالات مختلفة لنوع المؤقت: Unlimited
، Countdown
، و Limited
. يمكنك تفسيرها على النحو التالي:
-
Unlimited: يُمثل حالة مؤقت لا يحدد له نهاية زمنية، أي يستمر بشكل غير محدد.
-
Countdown: يُمثل حالة مؤقت يبدأ بقيمة معينة ويقل تدريجياً حتى يصل إلى الصفر أو قيمة أخرى محددة.
-
Limited: يُمثل حالة مؤقت يستمر لفترة زمنية محددة ثم يتوقف.
في الشيفرة، لديك كائن Person
يستخدم Enum TypeTimer
لتحديد نوع المؤقت الذي سيتم إنشاءه. عند النقر على الأزرار في واجهة المستخدم (rbtnNormalTimer
، rbtnCountDown
، و rbtnLimited
)، يتم تحديد الحالة المختارة باستخدام التحقق من حالة الـ RadioButton.
في حالة اختيار الـ RadioButton، يتم إنشاء كائن Person
باستخدام Enum المناسبة، ومن ثم يتم تنفيذ الكود داخل التبديل (switch
) في فئة Person
وفقاً للحالة المحددة.
هذه الهيكلة تتيح لك تنظيم وترتيب الشيفرة بشكل فعّال وفهم مبدئي للتصميم. يمكنك البناء على هذا التصميم لإضافة المزيد من الوظائف أو التعديلات في المستقبل.