abstract继承泛型Interface的实例化问题class

Instantiation issue of generic Interface inherited by abstract class

我正在尝试设计一个可以 handle/use 多个数据库的应用程序,我认为将所有内容封装在接口下是个好主意,但我似乎偶然发现了第一种方法 我的界面是:

interface IConnect<T>
    {
        T dbConnection(String dbConnectionString);
    }

我的摘要 Class 是:

  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>

那么我可以使用这个实现还是不行?

它应该是这样的:

IConnect<SQLiteConnection> sqliteConObj = new SQLiteSpecialConnect();
SQLiteConnection connection = sqliteConObj.dbConnection("SomeConnectionString");

问题是您立即调用方法,所以 return 类型是 SQLiteConnection