单语句条件 - 为什么该模式不用于其他代码块?

2023-11-25

只是想看看是否有人可以解释为什么安德斯认为这是有效的......

if(...)
   //single statement
else
   ///single statement

但这不是...

try
   //single statement
catch
   //single statement

引用自框架设计指南在关于“通用样式约定”的部分中,有关于大括号的说法:

AVOID省略大括号,即使语言允许。大括号不应该 被认为是可选的。即使是 单语句块,你应该 使用大括号。这个增加代码 可读性和可维护性。

存在非常有限的情况 省略大括号可能是可以接受的, 例如添加新语句时 在现有的单线之后 陈述要么不可能,要么 极其罕见。例如,它是 在 a 之后添加语句毫无意义throw陈述:

if(someExpression) throw new ArgumentOutOfRangeExcetion(...);

该规则的另一个例外是 case 语句中的大括号。这些 大括号可以省略,因为caseand break语句指示块的开始和开始。

安德斯认为是主观的、有争议的,这就是建议。

您可能还想查看有关支撑的部分msdn 上的编码约定。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单语句条件 - 为什么该模式不用于其他代码块? 的相关文章

随机推荐

  • 使用 JavaScript 对 CSS3 变换的值进行动画处理是否可以排除硬件加速?

    您可以通过设置动画持续时间并设置 CSS3 变换的初始值和最终值来利用硬件加速动画 如果您不设置动画持续时间并使用关键帧 而是直接使用 JavaScript 对所需 CSS3 转换的值进行动画处理 会怎样 您是否仍会利用硬件加速 或者是否会
  • 如何最好地将 CString 转换为 BSTR 以将其作为“in”参数传递到 COM 方法中?

    我需要转换一个CString实例到正确分配的BSTR并通过它BSTR转换为 COM 方法 为了让代码能够针对 ANSI 和 Unicode 进行相同的编译和工作 我使用CString AllocSysString 转换任何格式CString
  • MPI 和全局变量

    我必须实施 MPI 程序 有一些全局变量 4 个浮点数组和其他 6 个单浮点变量 首先由主进程从文件读取数据进行初始化 然后我调用 MPI Init 当排名 0 的进程等待结果时 其他进程 排名 1 2 3 4 处理数组等 问题是这些数组似
  • 在 ggplot() 中将误差线放置在列中心时出现问题

    我的条形图有问题 误差线仅出现在分组变量列的角上 而不是以集中方式出现在它们上 我正在使用的代码是这样的 a lt data frame Cond c In In Out Out Temp c Hot Cool Hot Cool Score
  • .NET 缓存(不在网站中)

    我需要一个能够响应内存压力的缓存 就像 ASP NET 中内置的缓存一样 我没有使用网站 但我正在构建 Windows 服务 有什么建议么 代码 技术 产品 只要它在内存中 我不在乎 如果您熟悉 ASP NET 缓存 System Web
  • 如何使用pvc创建postgres的helm图表

    我想使用 PVC 持久卷声明 为 PostgreSQL 创建一个 helm 图表 我考虑过尝试 katacodahttps www katacoda com courses kubernetes helm package manager使用
  • 无法建立与节点 -1 (/127.0.0.1:9092) 的连接。经纪人可能不可用

    我正在研究Spring Boot Kafka来自 Confluence 的示例并运行简单的生产者示例并出现以下错误 我使用的是 Windows 机器 并在 Windows 上安装了 ubunt 14 04 LTS 注意 即使我使用 loca
  • 如何使用 IOStream 存储格式设置?

    当为用户定义的类型创建格式化输出时 通常需要定义自定义格式化标志 例如 如果自定义字符串类可以选择在字符串周围添加引号 那就太好了 String str example std cout lt lt str lt lt lt lt squo
  • ASP.Net Core Cookie 身份验证不是持久的

    我开始使用开发网站ASP NET 核心 2 2 我正在通过自定义 cookie 身份验证 而不是身份 实现登录 注销 请查看或克隆the repo git clone https github com mrmowji aspcore cus
  • 多平台可移植Python

    我想在虚拟环境中将python安装在闪存驱动器上 这样无论我在哪里都可以开发代码 我可以在 Windows Mac Linux 计算机上使用我的闪存驱动器吗 对于 Windows 请前往 Portable Python http Porta
  • 如何使用 PHP 提取多部分 zip 文件?

    我使用了这段代码 来自 使用 php 解压文件 zip new ZipArchive res zip gt open file zip if res TRUE zip gt extractTo myzips extract path zip
  • 降低 ORMlite 的内部日志详细程度或禁用它

    我们正在我们的应用程序中进行一些重大的性能调整 因此我们开始使用方法跟踪来查找瓶颈 乍一看 Ormlite 还不错 但我们发现 例如在一个需要 8 毫秒的查询中 Ormlite 的内部日志需要 6 毫秒 75 此外 这些日志调用处于调试级别
  • 如何在 WPF RichTextBox 中将插入符号移动一定数量的位置?

    我想将插入符号移动到当前插入符号位置的右侧 4 个位置 我已注册PreviewKeyDown 并调用InsertTextInRun 当 Tab 键被捕获时 如下所示 private void rtb PreviewKeyDown objec
  • 仅限制一个方向的拖动

    Using jQuery 可拖动 如何限制可拖动对象被拖动只朝一个方向 即只有顶部或只有底部axis y 并且仅向左或仅向右时axis x 这意味着如果我想要一个可拖动的 with axis set to y 只能被拖到bottom 那么它
  • ES6 粗箭头和括号 `(...) => ({...})` [重复]

    这个问题在这里已经有答案了 我一直在研究一些 Graph QL React Relay 示例 但遇到了一些奇怪的语法 在 Graphql 对象中定义字段时 使用以下语法 const xType new GraphQLObjectType n
  • SQLModel:sqlalchemy.exc.ArgumentError:需要列表达式或 FROM 子句,

    我正在使用 SQLModel 库来做一个简单的select 就像他们官方网站上描述的那样 然而我得到了Column expression or FROM clause expected错误信息 from typing import Opti
  • iOS 5 阻止 ARC 桥接转换

    这个问题引用了这个问题 如何用Block简化回调逻辑 我的标头有这些 typedef typedef void StuffDoneBlock NSDictionary parsedData typedef void StuffFailedB
  • 在Python中获取处理器信息

    使用Python有什么方法可以找出处理器信息 我需要名称 我需要运行解释器的处理器的名称 我检查了sys模块 但它没有这样的功能 如果需要 我也可以使用外部库 The 平台 处理器 函数以字符串形式返回处理器名称 gt gt gt impo
  • LibGit2Sharp:签出远程分支

    我尝试通过 LibGit2Sharp 签出远程分支 在 git 本身中 您使用以下命令 git fetch origin git checkout b test origin test 在较新的版本中它只是 git fetch git ch
  • 单语句条件 - 为什么该模式不用于其他代码块?

    只是想看看是否有人可以解释为什么安德斯认为这是有效的 if single statement else single statement 但这不是 try single statement catch single statement 引用