小さな問題があります。これは私の問題の簡略版です。
ボタンの名前 (New、Edit、Delete) のリストと「Type」タイプのオブジェクトを持つクラスがあります。
class test
{
private List<Button> buttons; //
private Type type;
public test(Type t)
{
this.type = t;
/* some code to create the buttons from the enum.
got this already covered but "Restore" does not get created by intention*/
}
public void setButtons(int i)
{
}
}
型は flags 属性を持つ列挙型です
[Flags] enum EnumTest{None=0, New=1, Edit=2, Delete=4, Restore=8}
私がしたいのは、「setButtons」メソッドで「type」のインスタンスを作成し、「int i」からフラグ値に値を設定し、ボタンのリストを調べて、「Enabled」プロパティを設定することですフラグが立てられているかどうかに応じたボタン。ボタンの「名前」プロパティは、列挙型 (EnumTest またはその他) のフラグ名に依存します。
私はいくつかのものを試しました
var enu = Enum.ToObject(type, i);
しかし、フラグを設定できないか、方法がわかりません。作成中にリフレクションを使用することを考えていました。「ToObject」メソッドは flags 属性ではうまく機能しないようです。「TryParse」はそうですが、「Type」から動的にロードする方法がわかりません。
これは私の問題の非常に単純化されたバージョンですが、意味を維持する場所であることを考慮してください。