受博文 C#中Finally的一个不太常见的用法 的启发,正好在开发中遇到这样一段代码:

public bool ChangeBlogApp(Guid userID, string oldBlogApp, string newBlogApp)
{
CacheFactory.Default.Remove(CacheKeyManager.GetBlogConfigCacheKey(oldBlogApp));
CacheFactory.Default.Remove(CacheKeyManager.GetBlogConfigCacheKey(newBlogApp));
return _bcProvider.UpdateBlogApp(userID, newBlogApp);
}

需要把2行CacheFactory.Default.Remove的代码移至_bcProvider.UpdateBlogApp之后。

按照以前的做法,代码会改成这样(增加一个局部变量):

public bool ChangeBlogApp(Guid userID, string oldBlogApp, string newBlogApp)
{
var result = _bcProvider.UpdateBlogApp(userID, newBlogApp);
CacheFactory.Default.Remove(CacheKeyManager.GetBlogConfigCacheKey(oldBlogApp));
CacheFactory.Default.Remove(CacheKeyManager.GetBlogConfigCacheKey(newBlogApp));
return result;
}

而使用try...finally,可以无需增加局部变量,代码如下:

public bool ChangeBlogApp(Guid userID, string oldBlogApp, string newBlogApp)
{
try
{
return _bcProvider.UpdateBlogApp(userID, newBlogApp);
}
finally
{
CacheFactory.Default.Remove(CacheKeyManager.GetBlogConfigCacheKey(oldBlogApp));
CacheFactory.Default.Remove(CacheKeyManager.GetBlogConfigCacheKey(newBlogApp));
}
}

最新文章

  1. 在 Linux 中使用搜狗拼音输入法以及搞定 Flash 和支付宝
  2. 跳过IE10安装VS2013
  3. JQuery源码解析(一)
  4. lag 和 lead
  5. Life is hard
  6. [设计模式] 13 责任链模式 Chain of Responsibility
  7. 1207.1——C语言 函数
  8. java_windows下修改eclipse的默认编码
  9. lucene 索引删除
  10. ArcGIS制图技巧系列(3)—让地图更有立体感
  11. Linux版 php5.4 升级php7
  12. mybatis关于ORM的使用以及设计(二)[DaoInterface 转换 Mapper代理对象]
  13. NVIDIA 驱动安装(超详细)
  14. Scrum Meeting NO.7
  15. 精彩看点 | GIAC大会PPT+视频合集全量放送!
  16. shiro 身份授权+权限认证
  17. List<String> list=new ArrayList<String>(20);为什么要声明为List 而不是ArrayList<String>?
  18. P2837晚餐队列安排
  19. Mybatis常见面试题 一
  20. 用Model来计算cell的高度

热门文章

  1. 初识EseNt
  2. e664. 在图像中获取子图像
  3. 帝国cms的list.var中使用php函数
  4. Python脚本完美解决Linux环境解压.zip文件乱码问题
  5. 【转】Linux内核源码分析方法
  6. CentOS开关机命令
  7. html dom基本操作
  8. Tomcat源码学习
  9. [译]Unity3D内存管理——对象池(Object Pool)
  10. css属性cusor