>>Hi,
>>
>>I have a method that needs to return either OleDbDataReader or SqlDataReader (depends on the back-end database). Within the method I have IF/ELSE where the code is processed accordingly. But in the method signature I can only specify one type of reader. E.g.
>>
>>public OleDbDataReader MethodName()
>>or
>>public SqlDataReader MethodName()
>>
>>
>>Does it mean that I have to split the method into two methods depending on the type of reader I need to return and deal with it at the calling level?
>
>It depends on whether you need to use any methods or properties that are specific to one or the other. If you don't then you can reference either as IDataReader. eg:
IDataReader dataReader = GetDataReader();
>
> private IDataReader GetDataReader()
> {
> if (YouWantAnSqlReader)
> return new SqlDataReader();
> else
> return new OleDbDataReader();
> }
I can see that many problems (or good design) can be implemented with using Interfaces. I need to study this topic again.
Thank you.
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham