c# - Convert.toInt32(boolean) 是 c# 中执行此操作的唯一方法吗?

标签 c# refactoring boolean dynamics-crm-2011

我在 C# 中有一些代码,如果某个 boolean 值为真,则需要将数字递增 1,否则它需要说相同。我发现在 VS 2012 中使用立即窗口的唯一方法是通过 + Convert.ToInt32(boolean)

我在这里某处遗漏了一些明显的东西吗?我想既然 boolean 值基本上是 true (1) 或 false(0)(让我们忘记 FileNotFound),那么将 boolean 值强制转换为 Int 值会更容易。

编辑: false是0,不是1

edit2:我原来的编辑被吞没了。我目前正在对数字进行 nullcheck(该数字是 Dynamics CRM 2011 实体中的可为 null 的 int 字段)。是否可以保留该 nullcheck?

最佳答案

我不认为将 boolean 标志添加到某个值是非常可读的解决方案。基本上,如果标志为 true,您希望增加(即加 1)值。所以,简单的 if 检查将清楚地描述你的意图添加做这项工作:

if (flag) value++;

更新:根据您的编辑,您想做两件事:

  1. 将默认值设置为可空值
  2. 如果某些条件为真,则增加值。

为了使您的代码清晰,我不会尝试将两者放在一行中。让你的意图明确:

value = value ?? 0; // 1

if (flag) // 2
    value++;

关于c# - Convert.toInt32(boolean) 是 c# 中执行此操作的唯一方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21046124/

相关文章:

c# - 如何将多个参数动态传递到 Asp .Net MVC 中的 Html.Action

c# - Math.Floor 或 Math.Truncate 与 (int) 在正数性能方面

Java boolean 方程作为函数的参数

algorithm - 最大的非连续子矩阵与所有

c# - 在 zip 中不应该使用 ICSharpCode.SharpZipLib.Zip 子文件夹

c# - ConnectionString 将不会获取我的数据库变量

sql - 有没有一个重构 SQL 的工具,有点像 ReSharper for SQL

javascript - 通过最小化依赖关系来重构前端代码

javascript - 在不同的类名上调用函数?

Java变化比较