枚举和开关案例

Xyz*_*Xyz 3 asp.net enums case switch-statement

嗨我使用转换为带开关的字符串的枚举,但它不起作用.它给出了编译错误:无法将类型'userControl_commontop.UserType'隐式转换为'string'

代码是:

private void CommonTopChangesnew(string usertype)
{

    switch (usertype.Trim().ToUpper())
    {
        case UserType.NORMAL :
            hlkSAD.Enabled = false;
            hlkMRTQuery.Enabled = false;
            hlkReqViewer.Enabled = false;
            hlkSendnotif.Enabled = false;
            break;
        case UserType.POWER :
            hlkSAD.Enabled = false;
            hlkReqViewer.Enabled = false;
            hlkSendnotif.Enabled = false;
            break;
    }
}

enum UserType
{
    NORMAL,
    POWER,
    ADMINISTRATOR
}
Run Code Online (Sandbox Code Playgroud)

Sha*_*ica 5

枚举不是字符串,只是一个常量const int MY_VALUE = 1;是一个字符串.

您应该将您的字符串更改为枚举:

switch ((UserType)Enum.Parse(usertype, typeof(UserType))) {
  ...
}
Run Code Online (Sandbox Code Playgroud)


San*_*nen 5

你应该试试这个:

enum UserType
{
  NORMAL,
  POWER,
  ADMINISTRATOR
}

private void CommonTopChangesnew(string usertype)
{
  switch ((UserType)Enum.Parse(typeof(UserType), usertype, true))
  {
    case UserType.NORMAL:
      hlkSAD.Enabled = false;
      hlkMRTQuery.Enabled = false;
      hlkReqViewer.Enabled = false;
      hlkSendnotif.Enabled = false;
      break;
    case UserType.POWER:
      hlkSAD.Enabled = false;
      hlkReqViewer.Enabled = false;
      hlkSendnotif.Enabled = false;
      break;
  }
}
Run Code Online (Sandbox Code Playgroud)