Avatar ·

كيفية تحويل 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)؟ هل هناك طرق أكثر أماناً؟ شكراً مقدماً على المساعدة! <<>>

التحويل المباشر للنوع (cast) — الأسهل