C# 枚举类型转换问题

megadron 2011-03-29 03:17:42
C# 中讲字符串转换成对应的枚举类型可以用:
using System;
using System.Windows.Forms;
Keys keyDown = (Keys)Enum.Parse(typeof(Keys),"Down");

我定义了一个可以为空的枚举变量:
Keys? key;
我该怎么将字符串"null"转换成Keys? key ???
...全文
204 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
vrhero 2011-03-29
  • 打赏
  • 举报
回复
呵呵,漏掉了个条件...你加上不就行了...
Keys? keyDown=string.IsNullOrWhiteSpace(key)||key.ToLower()=="null"?null:(Keys)Enum.Parse(typeof(Keys),key);
megadron 2011-03-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 vrhero 的回复:]
C# code
Keys? keyDown=string.IsNullOrWhiteSpace(key)?null:(Keys)Enum.Parse(typeof(Keys),key);
[/Quote]

谢谢,虽然你还是没看清题意。
vrhero 2011-03-29
  • 打赏
  • 举报
回复
Keys? keyDown=string.IsNullOrWhiteSpace(key)?null:(Keys)Enum.Parse(typeof(Keys),key);
vrhero 2011-03-29
  • 打赏
  • 举报
回复
哦...看错题意了...不可以,只能先过滤字符串"null"...
vrhero 2011-03-29
  • 打赏
  • 举报
回复
可以用三元运算符...
Keys? keyDown=key.HasValue?(Keys)Enum.Parse(typeof(Keys),key):null;
megadron 2011-03-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ojlovecd 的回复:]

加个if判断吧,如果是字符串"null",直接给key赋null,否则再调用Enum.Parse
[/Quote]

谢谢,请问下是否不能直接转?
我姓区不姓区 2011-03-29
  • 打赏
  • 举报
回复
加个if判断吧,如果是字符串"null",直接给key赋null,否则再调用Enum.Parse

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧