我的代码如下:
if (Settings.adp == true)
App.DB.UpdateIntSetting(SET.Adp, 0);
else
App.DB.UpdateIntSetting(SET.Adp, 1);
是否可以通过某种方式将bool Settings.adp转换为一个int(0或1),将其简化为一行
答案 0 :(得分:11)
答案 1 :(得分:4)
按照相反的逻辑,Nathan的ternary operator answer可能是最好的选择,但您也可以使用Convert.ToInt32
:
bool negatedValue = !Settings.adp;
App.DB.UpdateIntSetting(SET.Adp, Convert.ToInt32(negatedValue));
答案 2 :(得分:-1)
只要您需要在项目中的许多地方执行到int的转换,您的情况看起来就很适合使用ValueObject。
原因::如果您不使用ValueObject,最终将把用于转换的逻辑复制到需要转换的整个应用程序中。特别是对于您的倒逻辑(真-> 0,假-> 1),您的情况似乎更适合使用ValueObject。使用ValueObject可帮助您避免这种重复。