回 帖 发 新 帖 刷新版面

主题:关于枚举类型的问题?

最近学习VC#,想通过枚举类型来达到传字符串的目的。主要代码如下:
private enum UserState
        {
            clientid, uname, cstatememo, depname,
            stuempno, sexmemo, mzname, zjlx, idcard, tel, addr
        }
private void bt_OK_Click(object sender, EventArgs e)
        {
           for (int i = 0; i < 11; i++)
              {
                UserState userInfo=UserState.clientid;
                  str += " and '" + userInfo[i] + "'";    //这句意思是想通过变量i把枚举类型UserState的字符串都加到str后,请问应该如何实现?

回复列表 (共2个回复)

沙发

方便点可以这么做:          
string str = "";
for (int i = 0; i < 11;i++ )
{
    str += ((UserState)i).ToString() + " ";
}
你那样UserState userInfo=UserState.clientid;
枚举并不是象类一样实例化.所以userInfo[i]是错误的,也不存在的,事实上引用一个枚举型变量,只能有一个值,而且这个值是明确的,就如你这个userinfo已经有个值clientid了,它不是数组.枚举元素的值是int型的,所以可以(UserState)i,这就相当于取枚举的第i个元素了.你最好还是看看枚举的定义和属性,要不即使能够实现你要的效果,你还是不知道为什么

板凳

感谢楼上的
我看大部分资料上只是说enum类型可以转换成int型的,相反的过程倒每偶找到介绍~
不过还是感谢你了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册