我有这样一段代码:            string pKey = "1";
            //一组权限
            if (ckbadmin.Checked) pKey = "0";
            if (ckblook.Checked) pKey = "1";
            if (ckbreg.Checked) pKey = "2";
            if (ckbupdate.Checked) pKey = "3";
            if (ckbdel.Checked) pKey = "4";
            //两组权限
            if (ckblook.Checked && ckbreg.Checked) pKey = "12";
            if (ckblook.Checked && ckbupdate.Checked) pKey = "13";
            if (ckblook.Checked && ckbdel.Checked) pKey = "14";
            if (ckbreg.Checked && ckbupdate.Checked) pKey = "23";
            if (ckbreg.Checked && ckbdel.Checked) pKey = "24";
            if (ckbupdate.Checked && ckbdel.Checked) pKey = "34";
            //三组权限
            if (ckblook.Checked && ckbreg.Checked && ckbupdate.Checked) pKey = "123";
            if (ckblook.Checked && ckbreg.Checked && ckbdel.Checked) pKey = "124";
            if (ckblook.Checked && ckbupdate.Checked && ckbdel.Checked) pKey = "134";
            if (ckbreg.Checked && ckbupdate.Checked && ckbdel.Checked) pKey = "234";
            //四组权限
            if (ckblook.Checked && ckbreg.Checked && ckbupdate.Checked && ckbdel.Checked) pKey = "1234";
            return pKey;功能就是根据5个复选框的功能,组合字符串,这样写虽然行
但觉得比较繁琐,各位有没有好的方法实现这个功能??

解决方案 »

  1.   


      string pKey = "1";
              
                if (ckbadmin.Checked) {pKey = "0";}
    else
    {
                if (ckblook.Checked) pKey = "1";
                if (ckbreg.Checked) pKey += "2";
                if (ckbupdate.Checked) pKey += "3";
                if (ckbdel.Checked) pKey += "4";
    }
      

  2.   


     string pKey = "1"; 
              
                if (ckbadmin.Checked) {pKey = "0";}
    else
    {
                if (!ckblook.Checked) pKey ="";
                if (ckbreg.Checked) pKey += "2";
                if (ckbupdate.Checked) pKey += "3";
                if (ckbdel.Checked) pKey += "4";
    }
      

  3.   

     string pKey = " "; 
              
                if (ckbadmin.Checked) {pKey = "0";}
    else
    {
                if (ckblook.Checked) pKey ="1";
                if (ckbreg.Checked) pKey += "2";
                if (ckbupdate.Checked) pKey += "3";
                if (ckbdel.Checked) pKey += "4";
    }
      

  4.   

    pKey =ckbadmin.Checked? "0":"";
    pKey +=ckblook.Checked? "1":"";
      

  5.   

    组合这东西强烈建议使用位操作Flag