2013年11月13日星期三

C# 在重复赋值上求更简单而且行数更少的写法 - 迹`@柳燕

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
C# 在重复赋值上求更简单而且行数更少的写法 - 迹`@柳燕  阅读原文»

其中 color仅仅为一个普通的JToken类型,需要精简的是,对于循环重复赋值上,能不能有更简单而且简洁的写法。。。

Byte red = 0, green = 0, blue = 0, alph = 255;
JToken colorJToken
= CurrentVersion < ColorVersion ? color.FirstOrDefault() : color;
if (colorJToken != null)
{
foreach (var item in colorJToken)
{
var colorJProperty = item as JProperty;
if (colorJProperty != null && colorJProperty.Value != null)
{
//以下求精简
(colorJProperty.Name == "a" ? ((Func<bool>)(() => (alph = (Byte)colorJProperty.Value).Equals(alph))).Invoke() :
(colorJProperty.Name
== "r" ? ((Func<bool>)(() => (red = (Byte)colorJProperty.Value).Equals(red))).Invoke() :
(colorJProperty.Name
== "g" ? ((Func<bool>)(() => (green = (Byte)colorJProperty.Value).Equals(red))).Invoke() :
(colorJProperty.Name
== "b" ? ((Func<bool>)(() => (blue = (Byte)colorJProperty.Value).Equals(red))).Invoke() :
((Func
<bool>)(() => false)).Invoke())))).ToString();
}
}
}


本文链接:http://www.cnblogs.com/jiailiuyan/p/3422981.html,转载请注明。

容易忽视的细节:查询两个日期之间的天数 - Liam Wang  阅读原文»

Oracle 查询两个日期之间的天数,参考SQL如下:

SELECT ROUND(TO_DATE('2013/11/15','YYYY/MM/DD') - SYSDATE) FROM DUAL

这样写存在什么问题呢?

假如当前的时间(SYSDATE)是: 2013/11/14 11:30 ,查询的结果是 1

如果当前的时间过了12点,如:2013/11/14 12:10 ,那么查询的结果会是 0

习惯上,即使到了晚上 2013/11/14 23:59,离 2013/11/15 应该也是 1 天。

所以正确的SQL参考如下:

SELECT ROUND(TO_DATE('2013/11/15','YYYY/MM/DD') - TRUNC(SYSDATE,'DD')) FROM DUAL

这就是考虑不周,经验不足啊。


本文链接:http://www.cnblogs.com/willick/p/3422925.html,转载请注明。

阅读更多内容

没有评论:

发表评论