次のような小さなメソッドがあります。
public void SetOptions<T>() where T : Enum
{
int i = 0;
foreach (T obj in Enum.GetValues(typeof(T)))
{
if (i == 0)
DefaultOption = new ListItem(obj.Description(), obj.ToString());
i++;
DropDownList.Items.Add(new ListItem(obj.Description(), obj.ToString()));
}
}
基本的に、列挙型からドロップダウン リストを作成します。Description()
は実際には列挙型の拡張メソッドであるため、T
間違いなくenum
.
ただし、obj
enum を this(int)obj
のようにインデックスにキャストするのと同じようにキャストしたいのですが、T を int に変換できないというエラーが表示されます。これを行う方法はありますか?