كيفية تحويل int إلى enum في C#؟ تحويل الأنواع للأعداد الصحيحة والتعدادات
مرحباً بالجميع! أنا مبتدئ في C# وقد واجهت موقفاً غير مفهوم أثناء العمل مع التعدادات (enum). لدي هذا التعداد:
```csharp
public enum Status
{
New = 1,
InProgress = 2,
Completed = 3,
Failed = 4
}
```
أحصل من قاعدة البيانات على عدد صحيح (مثلاً 2)، وأحتاج إلى تحويله إلى العنصر المقابل في التعداد `Status`. جربت ببساطة تعيين القيمة:
```csharp
int statusFromDb = 2;
Status currentStatus = statusFromDb; // خطأ في الترجمة!
```
لكن المترجم يعطي خطأ: "Cannot implicitly convert type 'int' to 'Status'". أفهم أن C# لغة شديدة التحديد في الأنواع، لكن كيف يمكن إجراء هذا التحويل بشكل صحيح؟ جربت استخدام `(Status)statusFromDb` — يبدو أنه يعمل، لكن هل هذا آمن؟ ماذا يحدث إذا كانت قيمة int غير موجودة في التعداد (مثلاً 99)؟ هل هناك طرق أكثر أماناً؟ شكراً مقدماً على المساعدة!
<<>>