枚举类型问题请教?
1.为何枚举不能定义在main()函数中呢?
2.强制转换成该枚举类型,不存在的一个值为何也会转换成功呢?
比如下面,将99转成tmp型,结果变成99,可是这个值并不在tmp类型中呀?
enum tmp
{
a = 1,
b = 2,
c = 3,
d = 4
} class Program
{
static void Main(string[] args)
{
tmp aa=(tmp)3;
Console.WriteLine(aa.ToString());
aa = (tmp)99;
Console.WriteLine(aa.ToString()); Console.ReadKey();
}
}
1.为何枚举不能定义在main()函数中呢?
2.强制转换成该枚举类型,不存在的一个值为何也会转换成功呢?
比如下面,将99转成tmp型,结果变成99,可是这个值并不在tmp类型中呀?
enum tmp
{
a = 1,
b = 2,
c = 3,
d = 4
} class Program
{
static void Main(string[] args)
{
tmp aa=(tmp)3;
Console.WriteLine(aa.ToString());
aa = (tmp)99;
Console.WriteLine(aa.ToString()); Console.ReadKey();
}
}
--->
什么类型都不能再Main中定义...
tmp aa = (tmp)3;
Console.WriteLine(aa.ToString());
aa = (tmp)99;
Console.WriteLine(((tmp)7).ToString("f")); if (Enum.IsDefined(typeof(tmp), 99))
Console.WriteLine("99 is difined");
else
Console.WriteLine("99 is not difined");看看这个的输出...默认情况下,枚举中每个元素的基础类型是 int。可以使用冒号指定另一种整数值类型。99可以转换为tmp,判断是否定义,可以使用Enum.IsDefined
{ enum tmp
{
a = 1,
b = 2,
c = 3,
d = 4
} static void Main(string[] args)
{
tmp aa=(tmp)3;
Console.WriteLine(aa.ToString());
aa = (tmp)99;
Console.WriteLine(aa.ToString()); Console.ReadKey();
}
}