如何去掉单行语句中的大括号?

How to Remove Braces on Single-Line Statement?

谁能建议如何从任何单行语句中删除大括号? (排除明显的只需手动删除大括号)

在 Visual Studio 中使用 C#。

所以代替:

if (thingy is null)
{
    throw new ArgumentNullException(nameof(thingy));
}

有备选方案:

if (thingy is null)
    throw new ArgumentNullException(nameof(thingy));

我已尝试 运行 CodeMaid 并更改了 CodeCleanup(只是将其改回带有大括号)。 我很乐意尝试任何推荐的扩展程序等来解决这个问题。

这不是 Visual Studio 中的标准重构。但是有添加这个的扩展。

例如。 Roslynator 进行了 Remove Brances 重构。

如果您使用的是 Visual Studio 2019 预览版,那么只需 2 个简单的步骤即可满足您的需求。

你不应该养成在单行条件语句中省略大括号的习惯。某人(您或其他人)很容易犯一个小错误,这会导致您以后必须处理的错误。

现在我将离开我的肥皂盒并分享一个更短的 null 守卫:

public void MyFunction(object thingy)
{
   _ = thingy ?? throw new ArgumentNullException(nameof(thingy));
   etc...

简洁明了,没有遗漏支撑问题的风险。对于字符串,我将使用扩展方法来获得相同的衬垫。

  public static string NullIfWhiteSpace(this string s)
  {
      return string.IsNullOrWhiteSpace(s) ? null : s;
  }

那我可以做:

public void MyFunction(string stringy)
{
   _ = stringy.NullIfWhiteSpace() ?? throw new ArgumentNullException(nameof(stringy));
   etc...

我会为空列表和字典做类似的事情。