在项目项目中使用了很多的判断语句,在使用resharper的时候提示我用三元运算符使得代码更加简约
可是回头再想想,三元运算符就真的很好嘛?
刚刚实习,公司要求带啊要易于理解,要更有可读性,可是明显if-else要比三元更加直观
但是,三元看起来代码会更加的简洁精炼。
在公司的大神们,你们觉得到底哪种会更好,或者,两种在运行机制上面有什么不同。
------解决思路----------------------
写if-else 我喜欢把{}带让。如果是:
if( a == 1)
{
b = 10;
}
else
{
b = 20;
}
这样的,明显写成:b = a == 1 ? 10 :20 更加简洁。这种情况下我觉得三元运算符的可读性更强。
而如果{}内有更多了操作,那只能写成if-else 了。
你可以查看编译后的代码,三元运算符的本质上就是if-else。
------解决思路----------------------
三目有其独特之处,如下代码:
int 相加值 = (位1 >= 0 ? int.Parse(被加数[位1--].ToString()) : 0) + (位2 >= 0 ? int.Parse(加数[位2--].ToString()) : 0) + 进位值;
请试用IF去写看
------解决思路----------------------
看你的代码量了 如果代码量大用if(){}else{}
代码量小就用运算符
平时做好注释就OK 看不懂说明他们水平太低
------解决思路----------------------
如果是简单的付值,如数据库相关的付值,还是会用三元运算符。
但一些复杂的,或是认为将来可能会增加其他语句的,就用IF-else。
------解决思路----------------------
代码的简洁易读与否,个人认为主要还是看代码结构和是否遵循了一些编码的规范。至于在一段代码中用哪个好,没有必然选择。
------解决思路----------------------
建议从代码的可读性和简洁上综合考虑。
1)
Console.WriteLine("This is a {0} program",Environment.Is64BitProcess?"X64","X86");
2)
if(Environment.Is64BitProcess) Console.WriteLine("This is a X64 program"); else Console.WriteLine("This is a X86 program");
我认为第一种易读且简洁,用if else也不见得更易读很多,所以在这种情况下我会选择第一种。
习惯使用?:之后,很多如上面栗子中简单的情况写起来和读起来都很方便。
主要看你个人是杀鸡焉用牛刀呢,还是狮子搏兔亦用全力。
------解决思路----------------------
这个没办法说。放盐多少根据菜来滴,青菜少放点,荤菜多放点
同样,能一目了然滴自然一行比多行好。不能一目了然滴自然表达结构清晰滴要比炫技的好