我在一个接口中设计一个返回类型为DataReader函数
想在2个类继承后后,分别实现为返回类型为SqlDataReader何OleDbDataReader的函数
如何实现简单的说就是,不同返回类型的同名函数如何解决

解决方案 »

  1.   

       Object GetSqlDataReader();
      

  2.   


    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;
            }
        }
      

  3.   

    接口方法还是返回IDataReader 类型,实现方法该返回什么就是什么。
    SqlDataReader 或者 OleDbDataReader
    类型兼容,他自己会隐式转换的。
      

  4.   

    似乎可以用系统接口IDataReader。。
      

  5.   

    谢谢
    用IDataReader可以实现,我用DataSet、DataTable也可以替换我还想问如何解决类似的问题
    如返回类型为int 和string等的有什么统一的方法吗
      

  6.   

    如返回类型为int 和string等的
    你可用参数的方法 ,参数上加out 
      

  7.   

    看错拉,你要定义一个接口函数也行,可以使用“协变”,
    接口返回SqlDataReader和OleDbDataReader的基类。