Я знаю, что мое предложение идет вразрез с соглашениями об именах .NET, но я лично префикс enum с 'E', а флаги enum с 'F' (аналогично тому, как мы префиксируем интерфейсы с 'I'). Я действительно не понимаю, почему это не конвенция. Enums / Flags - это особый случай, такой как Interfaces, который никогда не изменит своего типа. Мало того, что он дает понять, что это такое, очень просто ввести intellisense, поскольку префикс будет фильтровать большинство других типов / переменных / и т. Д., И у вас не будет этих конфликтов имен.
И это также решило бы другую проблему, когда для примеров в WPF они используют статические классы, такие как enums (например, FontWeights), которые имеют предопределенные экземпляры типов, но вы не узнаете, если не будете искать их. Если бы они просто добавили им префикс «E», все, что вам нужно было бы сделать, это набрать символ, чтобы найти эти специальные статические классы.