我代码如下:
enum Styles { Plaid = 0, Striped = 23, Tartan = 65, Corduroy = 78 }; public FormTestMessage()
{
InitializeComponent();
} private void btn_TestArray_Click(object sender, EventArgs e)
{
string[] arrEnum = Enum.GetNames( typeof(Styles) );
Array arrEnum2 = Enum.GetValues( typeof(Styles) );
Console.WriteLine("for *******************************");
for (int i = 0; i < arrEnum.Length; i++)
{
Console.WriteLine("{0}, {1}, {2}", i, arrEnum.GetValue(i), arrEnum2.GetValue(i) );
} Console.WriteLine("foreach ****************************");
foreach (int i in arrEnum2)
Console.WriteLine(i); } /*
输出:
for *******************************
0, Plaid, Plaid
1, Striped, Striped
2, Tartan, Tartan
3, Corduroy, Corduroy
foreach ****************************
0
23
65
78
*/
对于Enum.GetValues 解释为检索指定枚举中常数值的数组.
为什么我用for就不能得到其常数值,而输出的是和GetName的值一样呢.
但为什么用foreach就能得到其常数值.
帮解决一下.谢谢!!
enum Styles { Plaid = 0, Striped = 23, Tartan = 65, Corduroy = 78 }; public FormTestMessage()
{
InitializeComponent();
} private void btn_TestArray_Click(object sender, EventArgs e)
{
string[] arrEnum = Enum.GetNames( typeof(Styles) );
Array arrEnum2 = Enum.GetValues( typeof(Styles) );
Console.WriteLine("for *******************************");
for (int i = 0; i < arrEnum.Length; i++)
{
Console.WriteLine("{0}, {1}, {2}", i, arrEnum.GetValue(i), arrEnum2.GetValue(i) );
} Console.WriteLine("foreach ****************************");
foreach (int i in arrEnum2)
Console.WriteLine(i); } /*
输出:
for *******************************
0, Plaid, Plaid
1, Striped, Striped
2, Tartan, Tartan
3, Corduroy, Corduroy
foreach ****************************
0
23
65
78
*/
对于Enum.GetValues 解释为检索指定枚举中常数值的数组.
为什么我用for就不能得到其常数值,而输出的是和GetName的值一样呢.
但为什么用foreach就能得到其常数值.
帮解决一下.谢谢!!
for (int i = 0; i < arrEnum.Length; i++)
{
Console.WriteLine("{0}, {1}, {2}", i, arrEnum.GetValue(i), (int)arrEnum2.GetValue(i) );
}
string[] arrEnum = Enum.GetNames(typeof(Styles));
int[] array=new int[arrEnum.Length];;
Enum.GetValues(typeof(Styles)).CopyTo(array,0);
Console.WriteLine("for *******************************");
for (int i = 0; i < arrEnum.Length; i++)
{
Console.WriteLine(array[i].ToString());
} Console.WriteLine("foreach ****************************");
foreach (int i in arrEnum2)
Console.WriteLine(i);
Console.ReadKey();