Chr*_*yer 14 c# coding-style readability conditional-operator
我正在维护一些代码,并且发现了以下模式:
var isMale = (row["Gender"].ToString() == "M") ? true : false;
Run Code Online (Sandbox Code Playgroud)
而不是这个:
var isMale = (row["Gender"].ToString() == "M");
Run Code Online (Sandbox Code Playgroud)
是否有任何理由为什么会有人这样做?有人认为前者更具可读性或更清晰吗?是否有某种旧的C"陷阱",这是一个保留吗?
Sha*_*owe 16
我想如果你通过有效的角色得到报酬.除此之外,我想不出任何理由.
Jer*_*fin 10
如果你不能相信:(row["Gender"].ToString() == "M")正确地产生真假,那么你可能无法真正信任:(row["Gender"].ToString() == "M") ? true : false;或者.当然,你无疑需要至少重复几次:
(row["Gender"].ToString() == "M") ? true : false ? true : false ? true : false;
Run Code Online (Sandbox Code Playgroud)
再说,也许你不能相信的组合==和?:由其自身-成为真正的肯定,你可能至少需要多一点冗余:
if ((row["Gender"].ToString() == "M") ? true : false ? true : false ? true : false == true)
isMale = true == true;
else
isMale = false != false;
Run Code Online (Sandbox Code Playgroud)
嗯......也许我昨晚熬夜了...... :-)