0

最近、(Rowlex OwlGrinder によって私の OWL クラスから作成された) .net の列挙型クラスの定数間の循環に関する問題が発生しました。問題は .net リフレクションを使用することで解決されました (親愛なるジョン スキート氏からの大きな助けに感謝します): stackoverflow:problem-cycling-enum-class-values

これを解決して使い始めました。dropDownList の選択値を enum クラス インスタンスの 1 つに一致させた後、述語 (=hasLanguage) を介して、選択したオブジェクト (=Language) を RDF サブジェクト (=learningResource) に宣言する必要がありました。

//learningResource is a new RDF subject, hasLanguage is predicate, and there
        //is a new value for it - Language.

        System.Reflection.FieldInfo[] resLanFields =
            typeof(Language).GetFields();

        for (int i = 0; i < resLangFields.Length; i++)
        {
            if (resLanFields[i].Name.Equals(dropDownList_lang.SelectedValue))
                learningResource.hasLanguage = ??? //i-th constant of Language
        }

問題が発生しました。Language[i] (または Language クラスの i 番目の定数を選択するためにこのようなもの) を使用して hasLanguage に割り当てることはできません。列挙型クラスの i 番目の定数 (リフレクションなど) を選択する方法はありますか? この状況で誰か助けてくれませんか?

4

2 に答える 2

0

私は言うだろう

resLanFields[i].GetValue(null)

しかし、これが機能する場合は、投票しないでください。これはジョンの元の回答にありました。

于 2009-06-04T00:14:01.343 に答える