C#如何解决同一函数被继承返回类型不同 我在一个接口中设计一个返回类型为DataReader函数想在2个类继承后后,分别实现为返回类型为SqlDataReader何OleDbDataReader的函数如何实现简单的说就是,不同返回类型的同名函数如何解决 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Object GetSqlDataReader(); interface DataReaderBase { IDataReader MyDataReaderMethod(string connectionString); } class DataReaderSQL : DataReaderBase { public IDataReader MyDataReaderMethod(string connectionString) { string queryString = "SELECT OrderID, CustomerID FROM dbo.Orders;"; SqlDataReader reader = null; using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = new SqlCommand(queryString, connection); connection.Open(); reader = command.ExecuteReader(); } return reader; } } 接口方法还是返回IDataReader 类型,实现方法该返回什么就是什么。SqlDataReader 或者 OleDbDataReader类型兼容,他自己会隐式转换的。 似乎可以用系统接口IDataReader。。 谢谢用IDataReader可以实现,我用DataSet、DataTable也可以替换我还想问如何解决类似的问题如返回类型为int 和string等的有什么统一的方法吗 如返回类型为int 和string等的你可用参数的方法 ,参数上加out 看错拉,你要定义一个接口函数也行,可以使用“协变”,接口返回SqlDataReader和OleDbDataReader的基类。 [求助]C# Winform 如何用Windows身份验证方式还原数据库.bak文件? 急救!!!! 做个播放器 一个solution中的两个project如何共用一个app.config? 如何实现窗体粘合 用按钮控制<SPAN>标签的隐藏和显示 Visual Studio 2003中引用acdbmgd.dll和acmgd.dll出错??? c# 方法和函数的区别. 关于c#发送QQ邮件定义发件人的问题 为什么我选择release后,显示好多 命名空间未找到 求教 读写文件流效率问题~ 一个面向接口编程的好例子(转载)
interface DataReaderBase
{
IDataReader MyDataReaderMethod(string connectionString);
} class DataReaderSQL : DataReaderBase
{
public IDataReader MyDataReaderMethod(string connectionString)
{
string queryString = "SELECT OrderID, CustomerID FROM dbo.Orders;";
SqlDataReader reader = null; using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open(); reader = command.ExecuteReader();
}
return reader;
}
}
SqlDataReader 或者 OleDbDataReader
类型兼容,他自己会隐式转换的。
用IDataReader可以实现,我用DataSet、DataTable也可以替换我还想问如何解决类似的问题
如返回类型为int 和string等的有什么统一的方法吗
你可用参数的方法 ,参数上加out
接口返回SqlDataReader和OleDbDataReader的基类。