--------简单又平常的几行代码,很让人想不通 特上CSDN请求指教--------

zpcoder 2010-05-14 08:52:17
public static object Read(string strKey)
{
if (HttpContext.Current.Cache[strKey] != null)
{
object obj = HttpContext.Current.Cache[strKey];
if (obj == null)
{
return null;
}
else
{
return obj;
}
}
else
{
return null;
}
//以上代码为什么不直接:return HttpContext.Current.Cache[strKey];
}


在下在写一个缓存类,想参考一下牛人们的方法/思路,随在网上找,结果找了这么个东西。
以上是我在某个网上某个帖子里收看到的。

我查不了少资料,怎么就没搞通。作者为什么不直接 return HttpContext.Current.Cache[strKey];

而要写那么多罗嗦的代码?
...全文
177 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
assky124 2010-05-15
  • 打赏
  • 举报
回复
可能是代码生成器生成的吧
cuike519 2010-05-15
  • 打赏
  • 举报
回复
估计是敲错了吧。。。
zpcoder 2010-05-15
  • 打赏
  • 举报
回复


2 楼教导得是呀~~~ 同志们说得都有理~~在下愚笨,是我想多了~~ 哈哈
assiwe 2010-05-15
  • 打赏
  • 举报
回复
很简单,因为有的公司工作量是按代码行数计算的……
flyerwing 2010-05-15
  • 打赏
  • 举报
回复
学习了!
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 a82344626 的回复:]
作者玩你呢
东西写重复

HttpContext.Current.Cache[strKey] != null
明明一样的判断
object obj = HttpContext.Current.Cache[strKey];
if (obj == null)
{
return null;
}
楼主你也可以这样写来忽悠别人
[/Quote]

是的,看前三条语句,它在“!=null”的时候再次重新判断“==null”,这就是骗人的代码。
a82344626 2010-05-15
  • 打赏
  • 举报
回复
作者玩你呢
东西写重复

HttpContext.Current.Cache[strKey] != null
明明一样的判断
object obj = HttpContext.Current.Cache[strKey];
if (obj == null)
{
return null;
}
楼主你也可以这样写来忽悠别人

maguowei19890708 2010-05-14
  • 打赏
  • 举报
回复
没大看明白
wangwenzhuang 2010-05-14
  • 打赏
  • 举报
回复
作者玩你呢
zzx509 2010-05-14
  • 打赏
  • 举报
回复
和直接返回是一样的。
a569673493 2010-05-14
  • 打赏
  • 举报
回复
除了3楼的 其他都看明白了
捷哥1999 2010-05-14
  • 打赏
  • 举报
回复
完全可以直接那样的,如果有数据就是有数据,如果没有就是返回null,可以的。不要相信书上的、相信已有的东西,相信你自己的判断力和实践结果。
  • 打赏
  • 举报
回复
这叫把简单问题复杂化,哈哈~~~~~~~~代码不写多不能显示出本领阿
mngzilin 2010-05-14
  • 打赏
  • 举报
回复
p哥,经典

我以前也是和lz一样纳闷,后来发现以前很2,信春哥不如无哥。

管他的,自己爽就行
jcrjia 2010-05-14
  • 打赏
  • 举报
回复
直接
return HttpContext.Current.Cache[strKey];
好了

除非还有其它业务逻辑
wuyq11 2010-05-14
  • 打赏
  • 举报
回复
return obj == null?null:obj;

public static object GetCache(string CacheKey)
{
System.Web.Caching.Cache objCache = HttpRuntime.Cache;
return objCache[CacheKey];
}
public static void SetCache(string CacheKey, object objObject)
{
System.Web.Caching.Cache objCache = HttpRuntime.Cache;
objCache.Insert(CacheKey, objObject);
}
object objModel = GetCache("");
if (objModel == null)//缓存里没有
{
objModel = DateTime.Now;
if (objModel != null)
{
int CacheTime = 30;
SetCache(CacheKey, objModel, DateTime.Now.AddSeconds(CacheTime), TimeSpan.Zero);//写入缓存

}
}


http://topic.csdn.net/u/20100401/13/8e0312f4-f78b-413d-a0dd-1d09f0b5fb76.html
  • 打赏
  • 举报
回复
他神经搭错了。

或许,作者玩读者呢!


我告诉你一个真理,可以破除迷信:测试说了算!而不是去读理论!
mngzilin 2010-05-14
  • 打赏
  • 举报
回复
可以,这是规范和习惯

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧