如何获得枚举成员的赋值?



下面的代码返回1,2,3,我希望GetNames做这些,GetValues返回2,5,10:

enum Nums
{
  One = 2,
  Two = 5,
  Three = 10 
}
class Program
{
  static void Main()
  {
    var vals = Enum.GetValues(typeof(Nums));
  }
}

上面是什么?如何从类型Nums中获取值2、5、10 ?

将其强制转换为int类型,如下所示:

int value = (int)Num;

需要将其强制转换为int类型:

int val = (int)Nums.One;

或者回答您关于获取枚举中所有项的问题:

IEnumerable<int> values = Enum.GetValues(typeof(Nums)).Cast<int>();

你可以这样做:

int[] vals = Enum
    .GetValues(typeof(Nums)) // Thus far, this is your code
    .Cast<int>()             // Cast individual elements to int
    .ToArray();              // Convert the result to array

我还没有完全了解c#枚举,但是枚举。GetValues文档中有一个示例,显示了强制转换对它们有一些非常有趣和强大的影响。http://msdn.microsoft.com/en-us/library/system.enum.getvalues (v = vs.110) . aspx

using System;
enum SignMagnitude { Negative = -1, Zero = 0, Positive = 1 };
public class Example
{
   public static void Main()
   {
      foreach (var value in Enum.GetValues(typeof(SignMagnitude))) {
         Console.WriteLine("{0,3}     0x{0:X8}     {1}",
                           (int) value, ((SignMagnitude) value));
}   }
}
// The example displays the following output: 
//         0     0x00000000     Zero 
//         1     0x00000001     Positive 
//        -1     0xFFFFFFFF     Negative

相关内容

  • 没有找到相关文章

最新更新