请问有没有办法给一个枚举类型赋一个空值

chenhaipeng 2003-08-23 05:27:35
请问有没有办法给一个枚举类型赋一个空值,如:

public enum test_enum
{
abc,
bcd,
f,
}
public void test()
{
test_enum a;
a = null; //该句不能通过
}
有什么解决办法吗?
...全文
874 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Meyer 2003-08-23
  • 打赏
  • 举报
回复
请话时间学学 C#的基本概念
Meyer 2003-08-23
  • 打赏
  • 举报
回复
枚举是值内型
你的要求不能做到
jjcccc 2003-08-23
  • 打赏
  • 举报
回复
经测试,上述代码是不行的,也就是 (object) a = null不行。但可以象下面这样处理:

using System;

namespace test
{
class Class1
{

[STAThread]
static void Main(string[] args)
{
WeekDay thisWeek=WeekDay.Mon;
object day=thisWeek;

day=null;//Box
day=WeekDay.Mon;//UnBox;
Console.WriteLine(day.ToString());
Console.Read();
}
}

public enum WeekDay
{
Mon,
Tue,
Wen,
Thu,
Fri,
Sat,
Sun
}
}

==输出:Mon
jjcccc 2003-08-23
  • 打赏
  • 举报
回复
枚举类型在后台会实例化为System.Enum的结构,而且代码一旦编译,实质上就成为基本类型,与int,float类似。也就是说,对一个值类型的变量,当然是不能直接赋值为null,但应该可以通过装箱与消箱进行变通处理。如:

public enum test_enum
{
abc,
bcd,
f,
}
public void test()
{
test_enum a;
(object) a = null;
}
panyee 2003-08-23
  • 打赏
  • 举报
回复
不能吧? 默认就是 test_enum.abc 第一项

110,500

社区成员

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

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

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