c# - 我应该如何在 C# 中重写一个非常大的复合 if 语句?

标签 c# refactoring structure if-statement guard-clause

在我的 C# 代码中,我有一个足够无辜地开始的 if 语句:

if((something == -1) && (somethingelse == -1) && (etc == -1)) {
    // ...
}

它在成长。我想现在里面肯定有20个条款。

应该如何处理这个?

最佳答案

尽可能使用门。

if 语句

if(bailIfIEqualZero != 0 && 
   !string.IsNullOrEmpty(shouldNeverBeEmpty) &&
   betterNotBeNull != null &&
   !betterNotBeNull.RunAwayIfTrue &&
   //yadda

重构后的版本

if(bailIfIEqualZero == 0)
  return;

if(string.IsNullOrEmpty(shouldNeverBeEmpty))
  return;

if(betterNotBeNull == null || betterNotBeNull.RunAwayIfTrue)
  return;

//yadda

关于c# - 我应该如何在 C# 中重写一个非常大的复合 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/965926/

相关文章:

c# - 在 .NET 中使用 OpenSSL 加密和解密文件

c++ - 将结构和结构成员传递给函数

c# - 起订量 验证是否使用任何表达式调用了方法

c# - 在浏览器控件中以编程方式填写 PDF 表单字段

c# - 按顺序枚举 Dictionary.KeyCollection

c# - Ctrl+R,Ctrl+R 命令不起作用

javascript - 重构javascript。解耦标记或单独的模块

scala - Slick:CRUD 扩展:如何封装隐式映射:BaseColumnType[T]

.net - 代码组织: How does Google organize it's code?

c# - 如何在 C# 应用程序中转换 C 结构?