複数のデータベースを扱う/使用できるアプリケーションを設計しようとしていますが、すべてのインターフェイスをカプセル化することをお勧めしますが、この方法は、私のインターフェースがある :抽象クラスに継承されたインターフェイスのインスタンス化
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>
を取得しますか?
「:SqliteConnect()新しいSQLiteSpecialConnect」とは何であるので、すぐにメソッドを呼び出しているのですか?それは単に "新しいSQLiteSpecialConnect()"ではないでしょうか?一見すると、他のすべてはうまく見えます。 – michauzo
不良コピーペースト... – John
もちろん、 'SQLiteConnection!= Iconnect' ... - 'Iconnect sqliteConObj =新しいSQLiteSpecialConnect()'と 'sqliteConObj.dbConnection(" SomeConnectionString " ) ' –
Corak