使用"添加/附加"是否有更好的方法来构建FontStyle方法而不是列出所有可能的组合?
'l is an instance of class that holds bold/italic/underline as booleans
Dim fStyle As New FontStyle
If l.fontBold And Not l.fontItalic And Not l.fontUnderline Then
fStyle = FontStyle.Bold
ElseIf Not l.fontBold And l.fontItalic And Not l.fontUnderline Then
fStyle = FontStyle.Italic
ElseIf Not l.fontBold And Not l.fontItalic And l.fontUnderline Then
fStyle = FontStyle.Underline
ElseIf l.fontBold And l.fontItalic And Not l.fontUnderline Then
fStyle = FontStyle.Bold Or FontStyle.Italic
ElseIf l.fontBold And Not l.fontItalic And l.fontUnderline Then
fStyle = FontStyle.Bold Or FontStyle.Underline
ElseIf Not l.fontBold And l.fontItalic And l.fontUnderline Then
fStyle = FontStyle.Italic Or FontStyle.Underline
ElseIf l.fontBold And l.fontItalic And l.fontUnderline Then
fStyle = FontStyle.Bold Or FontStyle.Italic Or FontStyle.Underline
End If
答案 0 :(得分:1)
是。 FontStyle
枚举有一个FlagsAttribute
,这意味着您可以将枚举常量与Or
结合起来。
<Flags>
Public Enum FontStyle
这样做
Dim fStyle As FontStyle = FontStyle.Regular
If l.fontBold
fStyle = fStyle Or FontStyle.Bold
End If
If l.fontItalic
fStyle = fStyle Or FontStyle.Italic
End If
If l.fontUnderline
fStyle = fStyle Or FontStyle.Underline
End If
请参阅:Use Enumerated Values with Bit Flags to Handle Multiple Options