关于强制类型转换的效率问题

soldierluo 2014-04-08 11:46:23
我有一个基类,然后继承类都会使用到数据库连接
如果我在基类中声明IDbConnection,那么在继承类中使用时,每次都要强制转换,不知道对效率会有多大影响,这样的好处是代码复用率高
如果我在基类中不声明IDbConnection,那么我在继承类中将单独的声明各自的connection,这样效率虽高,但代码复用率不高

代码举例如下,请教各位,如果采用IDbConnection的方式,对效率会有多大影响,比之于下面的例子


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//
using System.Data;
using System.Data.SqlClient;

namespace DBManger
{
public class DBManagerBase
{
//在基类中声明一个接口对象
protected IDbConnection conn;
}

public class DBManagerSqlServer : DBManagerBase
{
public DBManagerSqlServer(string _connStr)
{
conn = new SqlConnection(_connStr);
}

public void insert(string sqlStr)
{
//每次使用时转换一次,优点代码少,但是不知道转换的代价是多少
SqlCommand cmd = new SqlCommand(sqlStr, (SqlConnection)conn);
}
}
}


namespace DBManger
{
public class DBManagerBase
{
}

public class DBManagerSqlServer : DBManagerBase
{
//在继承类中声明对象
protected SqlConnection conn;

public DBManagerSqlServer(string _connStr)
{
conn = new SqlConnection(_connStr);
}

public void insert(string sqlStr)
{
//不需要转换,效率最高
SqlCommand cmd = new SqlCommand(sqlStr, conn);
}
}
}
...全文
635 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
soldierluo 2014-04-11
  • 打赏
  • 举报
回复
有木淫啊啊啊 啊啊啊
soldierluo 2014-04-08
  • 打赏
  • 举报
回复
引用 1 楼 wyd1520 的回复:
..即然都明确了是哪一种数据库了 为何不用SqlConnection 还非得用 IDbConnection 基类只声明这个没啥做用。。
因为基类如果有了IDbConnection ,很多操作直接在基类中编写就可以了,而不用IDbConnection 的话,每个继承类都要复写一遍,觉得麻烦
本拉灯 2014-04-08
  • 打赏
  • 举报
回复
..即然都明确了是哪一种数据库了 为何不用SqlConnection 还非得用 IDbConnection 基类只声明这个没啥做用。。
  • 打赏
  • 举报
回复
引用 1 楼 wyd1520 的回复:
..即然都明确了是哪一种数据库了 为何不用SqlConnection 还非得用 IDbConnection 基类只声明这个没啥做用。。
这可能是楼主举的一个例子,他的重点是在于斟酌‘类型转换效率’和‘代码重复率’哪个代价更大,使用什么方式做到更好的代码优化

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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