Avatar ·

كيفية تحويل int إلى enum في C#؟ تحويل الأنواع و Enum.Parse

مرحباً بالجميع! أنا مطور C# مبتدئ وواجهت موقفاً غير واضح بالنسبة لي. لدي تعداد (enum) لحالات الطلب: ```csharp public enum OrderStatus { Created = 1, Processing = 2, Shipped = 3, Delivered = 4 } ``` من قاعدة البيانات أحصل على قيمة رقمية للحالة بصيغة int (مثلاً 2). أحتاج إلى تحويل هذا int إلى عنصر من التعداد OrderStatus. جربت الإسناد مباشرة: ```csharp int statusValue = 2; OrderStatus status = statusValue; // خطأ في الترجمة! ``` لكني أحصل على خطأ: "Cannot implicitly convert type 'int' to 'OrderStatus'". أفهم أن C# لغة شديدة التحديد في الأنواع، لكن كيف يمكن إجراء هذا التحويل بشكل صحيح؟ سمعت عن التحويل الصريح (cast) وعن طريقة Enum.Parse، لكني لا أفهم تماماً الفرق وأي طريقة أفضل للاستخدام. كما يهمني معرفة ماذا سيحدث إذا مررت رقماً لا يتوافق مع أي من قيم enum (مثلاً 5 أو 0)؟ هل سيحدث استثناء؟