我创建了一个名为DB_Processor_Generic的类,用于创建不同的数据库并执行添加/获取数据操作。但我需要将这个类与不同的数据类型一起使用,所以我考虑使用泛型,但当我使用"_数据库。Query((">如下所示,我得到错误,说
'T'必须是具有公共无参数的非抽象类型构造,以便将其用作泛型类型中的参数"T"或方法"SQLiteConnection.Query(string,params object[](
我的代码有什么问题吗?因为我是这个社区的新手,如果我的问题描述有什么问题,请纠正我,谢谢
public class DB_Processor_Generic<T>
{
private SQLite.SQLiteConnection _db;
private string _path;
//Constructor
public DB_Processor_Generic(string path)
{
_path = path;
_db = new SQLite.SQLiteConnection(this._path);
_db.CreateTable<T>();
}
//Method
public void AddData<T>(T t1)
{
_db.Insert(t1);
}
public List<T> GetDB<T>(string tableName)
{
var DB_List = _db.Query<T>($"SELECT * FROM {tableName}");
return DB_List;
}
}
这个错误告诉您需要向T:添加一个约束
public class DB_Processor_Generic<T> where T : new()
因为Query<T>
在其定义中对T有约束,所以也必须设置您的,才能将T用作其类型参数。