Я не могу ответить с кодом VB, но флаги очень полезны при определенных обстоятельствах. Пример, который вы продемонстрировали, не так хорош. Представьте, что у вас есть что-то похожее на:
enum Format
{
Bold = 1,
Italic = 2,
Underlined = 4
}
Тогда вы можете указать Format
:
Format format = Format.Bold | Format.Italic;
// Then a check to see if the format is bold or italic should both pass.
Теперь это и полужирный и курсив (равно 3). Вы не сможете установить это без атрибута flags, хотя. Это как бы предотвращает взаимную исключительность опций. Чтобы сделать это без флагов, вам нужно сделать:
enum Format
{
Bold,
BoldUnderlined,
BoldItalic,
BoldUnderlinedItalic,
Underlined,
Italic,
ItalicUnderlined
}
Не так близко, как приятно.