مشكلة ركوب الدراجات القيم الفئة ENUM

StackOverflow https://stackoverflow.com/questions/938828

  •  06-09-2019
  •  | 
  •  

سؤال

أنا أعمل على تطبيق ويب دلالي في أي تجمع من طبولوجيا الأطباق المستخدمة. اعتدت rowlex owlgrinder لتحويل البومة إلى التجمع.

في OnTology، هناك بعض الطبقات التي تحتوي على أفراد، والتي يتم تحويلها إلى فئات TP Enum التي تحتوي على بعض الثوابت في مجموعات .dll. على سبيل المثال، سيتم تحويل فئة البومة المسماة باللغة مع فرد يدعى الإنجليزية، إلى كل من الطبقة المسماة تحتوي على ثابت باللغة الإنجليزية. اللغة. English هي سلسلة، تحتوي على URI المحدد للفرد في علم الأوضاع.

نص Alt http://img5.imageshack.us/img5/9308/73263054.jpg. نص Alt http://img5.imageshack.us/img5/2246/11461238.jpg.

أنا في هذا السياق لا أستطيع إيجاد طريقة للدورة بين ثوابت فئة ENUM. على سبيل المثال باستخدام شيء مثل هذا:

    foreach (string item in Enum.GetNames(typeof(Language)))
    {

    }

يلقي هذا الرمز استثناء يقول أن اللغة ليست تعينية.

كنت أتساءل ما إذا كان أي شخص يساعدني في هذه المشكلة.

هل كانت مفيدة؟

المحلول

كما يقول الخطأ، إنه ليس عددا حقيقيا.

يبدو وكأنه تحتاج إلى انعكاس:

var fields = typeof(Language).GetFields(BindingFlags.Static 
                                        | BindingFlags.Public);
foreach (string item in fields.Select(field => field.GetValue(null)))
{
     // ...
}

هذا يفترض أن لا توجد حقول ثابتة عامة أخرى في النوع. يمكنك دائما تصفية حسب النوع إلخ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top