谁能告诉我为什么我需要从枚举中转换为Int

        switch (Convert.ToInt32(uxView.SelectedValue))
        {
            case (int)ViewBy.Client:

如果我删除强制类型转换(int),它将失败,并说我必须使用强制类型转换。

这是我的枚举,枚举是整数。...有人知道吗?
    public enum ViewBy
    {
        Client,
        Customer
    }

最佳答案

在C#中,enum不仅仅是数字。相反,它们是与类型关联的数字或在上下文中具有名称的数字。

为了避免在case语句中进行强制类型转换,可以在switch中进行强制类型转换:

switch((ViewBy)Convert.ToInt32(uxView.SelectedValue))

但是,这有其自身的问题。例如,这段代码将7写到控制台。
enum ViewBy
{
    ChuckNorris = 1,
    JamesBond
}

Console.WriteLine((ViewBy)7);

09-29 21:00