本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订 。
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();
}
}
}
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,转载请注明。
没有评论:
发表评论