Используйте указание на конкретный тип в enum, если вы используете меньше, чем int:

enum MyEnum : byte {
     Value1,
     Value2,
     Value3,
     Value4,
}  

Таким образом:

struct Test {
     public MyEnum e1;
     public MyEnum e2;
     public MyEnum e3;
     public MyEnum e4;
} 

Будет запаковано как 4 байта. Но не забывайте, что любая математика с enum приводит к int 🙂

Read More