c# – 减少位顺序逻辑
发布时间:2020-12-15 17:27:54 所属栏目:百科 来源:网络整理
导读:我有以下代码,我想知道是否有更简洁,减少的方式来编写此代码: (FontStyle是带有Flags属性的.NET Enum) lblPrompt.Font.Style = FontStyle.Regular;if (chkBold.Checked) lblPrompt.Font.Style |= FontStyle.Bold;if (chkItalics.Checked) lblPrompt.Font.St
我有以下代码,我想知道是否有更简洁,减少的方式来编写此代码:
(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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |