实例化问题通过抽象类
问题描述:
我试图设计可控制/使用多个数据库的应用程序继承,我认为这将是封装在接口一切是个好主意,但它似乎我已经无意中发现的第一个方法 我的接口是:实例化问题通过抽象类
interface IConnect<T>
{
T dbConnection(String dbConnectionString);
}
我的抽象类是:
abstract class SqliteConnect :Iconnect<SQLiteConnection>
{
public abstract SQLiteConnection dbConnection(String dbConnectionString);
}
的具体实施是:
class SQLiteSpecialConnect:SqliteConnect
{
public override SQLiteConnection dbConnection(String fileToConnect)
{
return new SQLiteConnection("Data Source=" + fileToConnect);
}
}
但是,当我尝试实例化它,我得到
Iconnect<SQLiteConnection> sqliteConObj= new SQLiteSpecialConnect().dbConnection("SomeConnectionString");
cannot implicitly convert type System.Data.SQLite.SQLiteConnection to Iconnect<System.Data.SQLite.SQLiteConnection>
所以我可以用这个实现,或者是没有去?
什么是“新SQLiteSpecialConnect:SqliteConnect()”?它不应该只是“新的SQLiteSpecialConnect()”吗?乍一看,其他一切看起来都很好。 – michauzo
坏复制粘贴... – John
是啊,当然'SQLiteConnection = iConnect的'... - 使用'iConnect的 sqliteConObj =新SQLiteSpecialConnect()'然后'sqliteConObj.dbConnection( “SomeConnectionString” )' –
Corak