Foxtable(狐表)用户栏目专家坐堂 → 将字符串转化成一个枚举类型


  共有4518人关注过本帖树形打印复制链接

主题:将字符串转化成一个枚举类型

帅哥哟,离线,有人找我吗?
jspta
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
将字符串转化成一个枚举类型  发帖心情 Post By:2014/6/19 9:36:00 [只看该作者]

有没有办法,将字符串转化成一个枚举类型
比如已知字符串 “ControlTypeEnum” 最终获取该枚举的枚举值,代码如何写?求教


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/6/19 9:43:00 [只看该作者]

Dim b As ControlTypeEnum
For Each e As String In  ControlTypeEnum.GetNames(b.Gettype())
 output.show(e)
Next

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/19 9:55:00 [只看该作者]

 代码这样写

 

Dim label As ControlTypeEnum = [Enum].Parse(Gettype(ControlTypeEnum), "Label")


 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/6/19 10:02:00 [只看该作者]

我可能没说明白,一共可能是三部分,关键如何实现3。  这个字符串事先不知道的,随机的获得的 
1.我获得一个字符串,叫 “ControlTypeEnum”  ,也可能是其它
2.然后根据这个字符串我要获得这个字符串对应的枚举类型(不是枚举值),
3.然后获得该枚举类型中所有的值,

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/19 10:13:00 [只看该作者]

代码

 

Dim Code As String
Code = "Dim t As " & "ControlTypeEnum" & vbcrlf
Code = Code & "return t"
Functions.Add("getType",Code)
Functions.Complie()

Dim b As object = Functions.Execute("getType")
Functions.Remove("getType")

For Each e As String In  [Enum].GetNames(b.Gettype())
    output.show(e)
Next


 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/6/19 13:07:00 [只看该作者]

这个要预先编译一下啊,还有木有更好的方案那。
也可以用用,谢谢了。

 回到顶部
帅哥哟,离线,有人找我吗?
don
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2014/6/19 13:19:00 [只看该作者]

學習,簡化5樓的:

Dim CTE As ControlTypeEnum
For Each s1 As String In  [Enum].GetNames(CTE.Gettype())
    output.show(s1)
Next

 回到顶部
帅哥哟,离线,有人找我吗?
wfkbabro
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:265 积分:2399 威望:0 精华:0 注册:2011/10/21 17:07:00
  发帖心情 Post By:2021/1/10 22:03:00 [只看该作者]

一定收藏。

 回到顶部