c# - 如何正确翻译条件(不带括号)?
问题描述
我有条件,(
)
程序员编码的括号里面没有括号......我怎样才能正确地括号这样丑陋的编码?
if( c_1 && c_2 || c_3 || c_4 && c_5 || c_6 && c_7 || c_8 || c_9 && c_10)
解决方案
&&
C# 中的优先级1||
高于. 这意味着你的表达是有效的:
if ((c_1 && c_2) || c_3 || (c_4 && c_5) || (c_6 && c_7) || c_8 || (c_9 && c_10))
为了提高可读性,我可能会将条件提取到具有有意义名称的局部变量中。例如:
bool recentlyActive = (c_1 && c_2) || c_3;
bool passwordDisabled = (c_4 && c_5) || (c_6 && c_7);
bool userBanned = c_8 || (c_9 && c_10);
if (recentlyActive || passwordDisabled || userBanned)
{
...
}
1 C# 中的优先级记录在规范中,但它确实直接来自语法。不过,我很高兴该文档,因为我不想每次想了解运算符如何绑定时都必须阅读语法...
推荐阅读
- botframework - 机器人中的语音识别问题
- c - 如何在没有引用的情况下更改局部变量
- arrays - 如何将这些值相互绘制?
- reactjs - 无法解析 node_modules 中的 babel 加载器
- node.js - 使用节点js删除mongodb中的特定数据
- c# - 实例化反射委托类型
- javascript - 库是否应该在外部 api 调用上触发事件?
- imageresizer - 处理具有 300dpi 分辨率的 ImageResizer 图像
- pandas - 如何在特定范围内的熊猫中选择 NaN 值
- php - Yii2 PHP 在控制器中使用 beforeAction 执行检查用户