我有以下代码,我想知道是否有更简洁,减少的方式来编写此代码:
(FontStyle是带有Flags属性的.NET Enum)
lblPrompt.Font.Style = FontStyle.Regular; if (chkBold.Checked) lblPrompt.Font.Style |= FontStyle.Bold; if (chkItalics.Checked) lblPrompt.Font.Style |= FontStyle.Italic; if (chkUnderline.Checked) lblPrompt.Font.Style |= FontStyle.Underline;
我有一种感觉,答案在于正确应用和& CheckBox.Checked和所需标志之间的运算符,类似于以下内容:
lblPrompt.Font.Style = (chkBold.Checked & FontStyle.Bold) | (chkItalics.Checked & FontStyle.Italic) | (chkUnderline.Checked & FontStyle.Underline);
这不起作用,因为编译器显然不喜欢我用bool和Flag / Enum类型直接应用&符号.
解决方法
这些方面的内容怎么样:
lblPrompt.Font.Style |= (chkBold.Checked ? FontStyle.Bold : 0) | (chkItalics.Checked ? FontStyle.Italic : 0) | (chkUnderline.Checked ? FontStyle.Underline : 0);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。