c# – 使用泛型返回扩展方法
发布时间:2020-12-15 18:14:29 所属栏目:百科 来源:网络整理
导读:是否可以使用 extension methods返回 generic类型? 例如,我有以下方法: // Convenience method to obtain a field within a row (as a double type) public static double GetDouble(this DataRow row,string field) { if (row != null row.Table.Columns.
是否可以使用
extension methods返回
generic类型?
例如,我有以下方法: // Convenience method to obtain a field within a row (as a double type) public static double GetDouble(this DataRow row,string field) { if (row != null && row.Table.Columns.Contains(field)) { object value = row[field]; if (value != null && value != DBNull.Value) return Convert.ToDouble(value); } return 0; } 目前使用如下: double value = row.GetDouble("tangible-equity"); 但我想使用以下代码: double value = row.Get<double>("tangible-equity"); 这是可能的,如果是这样,该方法会是什么样的? 解决方法
这个怎么样:
public static T Get<T>(this DataRow row,string field) where T: IConvertible { if (row != null && row.Table.Columns.Contains(field)) { object value = row[field]; if (value != null && value != DBNull.Value) return (T)Convert.ChangeType(value,typeof(T)); } return default(T); } 与仅仅进行转换相比,Convert.ChangeType处理转换更加灵活.这几乎反映了您的原始代码,只是通用的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – 将rails项目从MySQL迁移到MongoDB
- 正则表达式在js和java中的使用
- 如何在PostgreSQL数据库中存储视频?
- Tomact打包时丢失依赖
- 在C#中创建可移植(非安装)Windows应用程序
- Ajax实现无刷新三联动下拉框例子
- [Swift]LeetCode407. 接雨水 II | Trapping Rain Water II
- ruby-on-rails – ‘Require’方法不起作用 – 帮忙?
- ruby-on-rails – 如何在没有数据库的情况下使用Rails / De
- omn??iauth – 单一登录(facebook,twitter,linkedin)服务: