相关疑难解决方法(0)

如何从ASP.NET MVC中的枚举创建下拉列表?

我正在尝试使用Html.DropDownList扩展方法,但无法弄清楚如何将它与枚举一起使用.

假设我有一个这样的枚举:

public enum ItemTypes
{
    Movie = 1,
    Game = 2,
    Book = 3
}
Run Code Online (Sandbox Code Playgroud)

如何使用Html.DropDownList扩展方法创建包含这些值的下拉列表?

或者我最好的办法是简单地创建一个for循环并手动创建Html元素?

c# asp.net asp.net-mvc

653
推荐指数
21
解决办法
34万
查看次数

如何向Enums添加扩展方法

我有这个枚举代码:

enum Duration { Day, Week, Month };
Run Code Online (Sandbox Code Playgroud)

我可以为此枚举添加扩展方法吗?

.net c# enums

103
推荐指数
7
解决办法
9万
查看次数

枚举扩展方法

在vs2008中,是否可以编写适用于任何枚举的扩展方法.

我知道你可以针对特定的枚举编写扩展方法,但我希望能够使用单个扩展方法进行每个枚举.这可能吗?

.net extension-methods enums enumeration

54
推荐指数
4
解决办法
5万
查看次数

如何将枚举绑定到组合框

我会使用组合框控件绑定枚举的值.

我写了这段代码:

cboPriorLogicalOperator.DataSource = Enum.GetValues(typeof(MyEnum))
    .Cast<MyEnum>()
    .Select(p => new { Key = (int)p, Value = p.ToString() })
    .ToList();

myComboBox.DisplayMember = "Value";
myComboBox.ValueMember = "Key";
Run Code Online (Sandbox Code Playgroud)

它运作良好,但我想知道是否有一个更简单的方法.

c# winforms

39
推荐指数
2
解决办法
2万
查看次数

为什么我们不能在枚举中添加静态方法?

我想知道为什么我们不能在枚举中添加静态方法(只有方法,而不是属性)?那有什么解释吗?

如果允许它将非常有用.

我也想了解谁禁止我们这样做?是IL还是C#?

编辑:

我不想使用扩展方法.因为我不需要传递该枚举的实例.我不需要它的价值......

我想打电话给不喜欢的FooTypes.GetGoodFoos()东西FooTypes.BadFoo.GetSomething()

编辑2:

只有我认为这可能更有用而不是在另一个类中编写这个方法吗?

public enum Colors
{
    Red,
    LightRed,
    Pink,
    /* .
       .
       . */
    Green

    public static Colors[] GetRedLikes()
    {
        return new Colors[]
        {
            Colors.Red,
            Colors.LightRed,
            Colors.Pink
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# enums static

7
推荐指数
3
解决办法
7491
查看次数

是否可以为通用Enum类型编写扩展方法?

这个StackOverflow问题上,我发现了一个非常好的帮助程序方法,用于将字符串解析为通用Enum值:

public static T ParseEnum<T>(string value)
{
    return (T) Enum.Parse(typeof(T), value, true);
}
Run Code Online (Sandbox Code Playgroud)

我想将其从辅助方法更改为扩展方法,但我对使用泛型并不十分熟悉,因此不确定是否/如何使用泛型。

我尝试过此方法,但是您很快就会看到此代码实际上并未编译:

public static T ParseEnum(this T myEnum, string value)
{
    return (T) Enum.Parse(typeof(myEnum), value, true);
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过这样做,但这也不起作用:

public static Enum ParseEnum(this Enum myEnum, string value)
{
    return Enum.Parse(typeof(myEnum), value, true);
}
Run Code Online (Sandbox Code Playgroud)

甚至可以做我在这里问的事情吗?

c# generics enums

1
推荐指数
1
解决办法
1315
查看次数