В дополнение к тому, что предлагает Джон Скит, есть более причудливый способ с Dictionary<,>
.Вероятно, это излишне только для четырех предметов, но, возможно, вы найдете эту идею полезной:
var map = new Dictionary<bool, FontStyle>
{
{ isBold, FontStyle.Bold },
{ isItalic, FontStyle.Italic },
{ isStrikeout, FontStyle.Strikeout },
{ isUnderline, FontStyle.Underline }
};
var style = map.Where(kvp => kvp.Key)
.Aggregate(FontStyle.Regular, (styleSoFar, next)
=> styleSoFar | next.Value);
Что мне нравится в этом, так это то, что связь между флагом и ассоциированным стилем четко отделена от «побитовой гимнастики»..