tags:

views:

308

answers:

1

Why does the following code produce no output?

static void Main(string[] args)
    {
        FieldInfo[] fi = typeof(MyStruct).GetFields(BindingFlags.Public);
        foreach (FieldInfo info in fi)
        {
            Console.WriteLine(info.Name);
        }
    }

    public struct MyStruct
    {
        public int one;
        public int two;
        public int three;
        public int four;
        public int five;
        public int six;
        public bool seven;
        public String eight;
    }
+2  A: 

You need to or in the instance binding as well. Change your code to:

FieldInfo[] fi = typeof(MyStruct).GetFields(BindingFlags.Public | BindingFlags.Instance);
foreach (FieldInfo info in fi)
{
 Console.WriteLine(info.Name);
}
Jake Pearson