1

我有以下方法调用:

var types = CityTypeExt.GetOptions();
var statuses = CityStatusExt.GetOptions();

以及以下方法:

public static class CityTypeExt
{
    public static SelectList GetOptions()
    {
        var values = EnumUtilities.GetSpacedOptions<CityType>();
        var options = new SelectList(values, "Value", "Text");
        return options;
    }
}

public static class CityStatusExt
{
    public static SelectList GetOptions()
    {
        var values = EnumUtilities.GetSpacedOptions<CityStatus>();
        var options = new SelectList(values, "Value", "Text");
        return options;
    }

}

有没有办法可以制作一个结合 CityTypeExt 和 CityStatusExt 的通用方法?

请注意,CityType 和 CityStatus 是枚举。

4

1 回答 1

4

试试这个:

public static class CityExt
{
    public static SelectList GetOptions<T>() where T : struct, IConvertible

    {
        var values = EnumUtilities.GetSpacedOptions<T>();
        var options = new SelectList(values, "Value", "Text");
        return options;
    }

}

var types = CityExt.GetOptions<CityType>();
var statuses = CityExt.GetOptions<CityStatus>();
于 2012-10-24T09:12:27.410 回答