如何将布尔值转换为整数?

时间:2018-12-17 03:38:15

标签: c# type-conversion int boolean

我的代码如下:

if (Settings.adp == true)
   App.DB.UpdateIntSetting(SET.Adp, 0);
else
   App.DB.UpdateIntSetting(SET.Adp, 1);

是否可以通过某种方式将bool Settings.adp转换为一个int(0或1),将其简化为一行

3 个答案:

答案 0 :(得分:11)

您可以使用三元运算符将其合并为一行:

App.DB.UpdateIntSetting(SET.Adp, Settings.adp ? 0 : 1);

documentation

  

条件?结果:替代

答案 1 :(得分:4)

按照相反的逻辑,Nathan的ternary operator answer可能是最好的选择,但您也可以使用Convert.ToInt32

bool negatedValue = !Settings.adp;
App.DB.UpdateIntSetting(SET.Adp, Convert.ToInt32(negatedValue));

Try it online

答案 2 :(得分:-1)

只要您需要在项目中的许多地方执行到int的转换,您的情况看起来就很适合使用ValueObject。

原因::如果您不使用ValueObject,最终将把用于转换的逻辑复制到需要转换的整个应用程序中。特别是对于您的倒逻辑(真-> 0,假-> 1),您的情况似乎更适合使用ValueObject。使用ValueObject可帮助您避免这种重复。