C# c带条件的条件语句|
鉴于:C# c带条件的条件语句|,c#,fonts,if-statement,operators,C#,Fonts,If Statement,Operators,鉴于: 如何应用布尔值来确定应使用的字体样式?上面的代码使它们都适用,因此它是粗体、斜体、删除线和下划线,但我想根据布尔值进行筛选。好的,您可以这样做: bool isBold = true; bool isItalic = true; bool isStrikeout = false; bool isUnderline = true; System.Drawing.Font MyFont = new System.Drawing.Font( thisTempLabel.LabelFo
如何应用布尔值来确定应使用的字体样式?上面的代码使它们都适用,因此它是粗体、斜体、删除线和下划线,但我想根据布尔值进行筛选。好的,您可以这样做:
bool isBold = true;
bool isItalic = true;
bool isStrikeout = false;
bool isUnderline = true;
System.Drawing.Font MyFont = new System.Drawing.Font(
thisTempLabel.LabelFont,
((float)thisTempLabel.fontSize),
FontStyle.Bold | FontStyle.Italic | FontStyle.Strikeout | FontStyle.Underline,
GraphicsUnit.Pixel
);
您可以使用:
但我不确定我是否会。这有点棘手。请注意,这两个代码位都利用了常数0隐式转换为任何枚举类型的事实。您可以这样做:
bool isBold = true;
bool isItalic = true;
bool isStrikeout = false;
bool isUnderline = true;
System.Drawing.Font MyFont = new System.Drawing.Font(
thisTempLabel.LabelFont,
((float)thisTempLabel.fontSize),
FontStyle.Bold | FontStyle.Italic | FontStyle.Strikeout | FontStyle.Underline,
GraphicsUnit.Pixel
);
您可以使用:
但我不确定我是否会。这有点棘手。请注意,这两位代码都利用了常量0可以隐式转换为任何枚举类型的事实。除了Jon Skeet所建议的之外,还有一种更奇特的字典方法。仅对四个项目来说,这可能有些过分,但也许你会发现这个想法很有用:
FontStyle style = 0 | (isBold ? FontStyle.Bold : 0)
| (isItalic ? FontStyle.Italic : 0)
etc
我喜欢的是国旗和相关风格之间的联系与“按位体操”完全分离。除了Jon Skeet的建议之外,这里还有一个更有趣的字典。仅对四个项目来说,这可能有些过分,但也许你会发现这个想法很有用:
FontStyle style = 0 | (isBold ? FontStyle.Bold : 0)
| (isItalic ? FontStyle.Italic : 0)
etc
我喜欢的是国旗和相关风格之间的关联与“逐位体操”完全分离。谢谢!只是学习了一下枚举,这对我来说现在更有意义了。@Thesen:是的,只是一个输入错误:谢谢!只是学习了一下枚举,这对我来说就更有意义了。@Thesen:是的,只是一个输入错误: