一个有意思的类扩展 有效解决判空问题
2014-08-12 15:41
155 查看
public static class ClassExtensions { public static TResult GetProperty<TClass, TResult>(this TClass obj, Func<TClass, TResult> func) where TClass : class { if ((object) obj == null) return default (TResult); else return func(obj); } public static TResult GetProperty<TKey, TResult>(this IDictionary<TKey, TResult> dict, TKey key) { if (dict == null || !dict.ContainsKey(key)) return default (TResult); else return dict[key]; } public static TResult GetProperty<TKey, TValue, TResult>(this IDictionary<TKey, TValue> dict, TKey key, Func<TValue, TResult> func) { if (dict == null || !dict.ContainsKey(key)) return default (TResult); TValue obj = dict[key]; return func(obj); }
相关文章推荐
- 要求顺序循环队不损失一个空间,全部能够得到有效利用,试采用设置标志位tag的方法解决“假溢出”问题,实现顺序循环队列算法
- 一个有意思的Ruby Webdriver超时问题的解决过程
- js的一个有意思的小题,闭包解决getElementByTagName的for循环绑定事件错误问题
- 分享一个连接,python扩展包下载地址分享包括numpy,scipy等,解决了win8系统不能使用这些扩展包的问题!
- 一个有意思的Ruby Webdriver超时问题的解决过程
- 解决一个在国内不能安装chrome扩展的问题
- 在使用BizTalk时遇到一个很郁闷的问题 之解决篇
- 今天遇到一个奇怪的问题!!无奈搞了半天也没解决,难道非要重装
- 一个我很长时间才解决的关于xp与2000共享的网络问题
- "BOF或EOF中有一个是真,或者当前的记录已被删除,所需的操作要求一个当前的记录"问题解决
- 无聊的解决的一个问题
- 如何解决一个小问题:当前不会命中断点
- 请各位高手看一下.这是一个关于定义冲突的问题.我应该怎么解决.急,忘各位高手指点!
- NHibernate解决了一个问题
- weblogic 的一个问题的解决方法!
- 实现datagrid的foot中增加一个新增数据行,以解决datagrid不能新增数据的问题
- 一个我很长时间才解决的关于xp与2000共享的网络问题
- 发现好的网站,解决了一个技术问题
- DataGuard - 一个关于Physical Standby中recover问题的解决方法
- 今天是否看书?是否解决曾经一个问题?是否有新的问题?是否忘记现状?是否知道该做什么?