Типы в .Net могут быть либо типами значений, либо типами ссылок.
Типы значений -> enums, structs и built-in values types(bool, byte, short, int, long, sbyte, ushort, uint, ulong, char, double, decimal)
Типы ссылок -> classes, interfaces, delegates, dynamic и strings
Итак, как видите, перечисления — это типы (например, classes и structs, etc). точнее, это типы значений. Важным моментом в отношении типов значений является то, что вы должны иметь возможность создавать из них экземпляры. Например, какая польза от int, который является структурой (типом значения), если вы не можете создать его экземпляр для хранения в нем 2, 3 или любого числа?!
Это общее правило -> вы не можете создавать пользовательские типы значений (enums и structs) с модификатором static.
Некоторые моменты:
Если вы пишете свои enums или structs непосредственно в namespace, они не могут быть помечены как private или protected, как и другие типы. Они могут быть просто public или internal, как и другие типы.
Если вы пишете свои enums или structs непосредственно в class, вы также можете пометить их как private или protected, так как вы можете пометить их как internal и public. class для внутренних типов аналогичен namespace для типов, за исключением того, что вы также можете отметить внутренние типы private или public.
person
Community
schedule
16.12.2019