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