私は次の拡張子を持つenum
を持っています。このenum
で列挙型の拡張
public enum BillingInterval
{
Monthly = 1,
Quarterly = 2,
Yearly = 3
}
とすることが可能です拡張子:
public static class EnumExtension
{
public static SelectList ToSelectList(this Enum en)
{
var list = (from Enum d in Enum.GetValues(en.GetType())
select new SelectListItem { Value = d.ToString(("d")), Text = Enum.GetName(en.GetType(), d) }).ToList();
var selectedValue = (int) Enum.Parse(en.GetType(), Enum.GetName(en.GetType(), en));
return new SelectList(list, "Value", "Text", selectedValue);
}
}
ここで私が話しているenum
です次の操作を実行します。
public ActionResult Test()
{
var vm = new CustomerViewModel();
vm.BillingIntervalOptions = CustomerModel.BillingInterval.ToSelectList();
}
今や私のモードlは、私はちょうど別のenum
を作った、と私は、このenum
が同じ拡張子を持つであろうと仮定だろうが、私は次のことをしようとすると、I私enum
PROBLEM
から値を含むSelectList
を持っていますコンパイルエラーを取得:
public enum Status
{
Trial = 1,
Demo = 2,
Setup = 3,
Production = 4
}
public ActionResult Test()
{
var vm = new CustomerViewModel();
vm.BillingIntervalOptions = CustomerModel.BillingInterval.ToSelectList();
//This gives me a compile error
vm.StatusOptions = Status.ToSelectList();
}
'Status' does not contain a definition for 'ToSelectList'
私enums
の一つは拡張子bを持っている理由私はかなりよく分かりません他の人はそうしない。
注:二列挙Status
はBillingInterval
列挙型と同じファイルではありません。これが問題だろうか?