C# 获得';T';必须是具有公共无参数构造函数的非抽象类型,才能将其用作参数';T';在泛型类型或方法中
我对C#有点陌生,我见过一些关于如何进行泛型处理的示例,但我找不到一个外行术语的示例 我将分享我试图做什么,请任何简单的语言输入将不胜感激C# 获得';T';必须是具有公共无参数构造函数的非抽象类型,才能将其用作参数';T';在泛型类型或方法中,c#,generics,generic-programming,C#,Generics,Generic Programming,我对C#有点陌生,我见过一些关于如何进行泛型处理的示例,但我找不到一个外行术语的示例 我将分享我试图做什么,请任何简单的语言输入将不胜感激 static readonly Lazy<SQLiteAsyncConnection> lazyInitializer = new Lazy<SQLiteAsyncConnection>(() => { return new SQLiteAsyncConnection(Constants.Database
static readonly Lazy<SQLiteAsyncConnection> lazyInitializer = new Lazy<SQLiteAsyncConnection>(() =>
{
return new SQLiteAsyncConnection(Constants.DatabasePath, Constants.Flags);
});
public static SQLiteAsyncConnection Database => lazyInitializer.Value;
public async Task<List<T>> GetItemsAsync<T>()
{
var data = await Database.Table<T>().ToListAsync();
return data;
//return Database.Table<TodoItem>().ToListAsync();
}
static readonly Lazy初始值设定项=new Lazy(()=>
{
返回新的SQLiteAsyncConnection(Constants.DatabasePath、Constants.Flags);
});
公共静态SQLiteAsyncConnection数据库=>lazyInitializer.Value;
公共异步任务GetItemsAsync()
{
var data=await Database.Table().ToListAsync();
返回数据;
//返回Database.Table().ToListAsync();
}
我得到了一个错误
“T
”必须是具有公共无参数构造函数的非抽象类型,才能将其用作泛型类型或方法“SQLiteAsyncConnection.Table()
”中的参数“T
”
我已经讲过了,但是我很难理解在
表的type参数上有一个泛型类型约束。然后,您必须确保要与表
一起使用的任何新的泛型类型参数都具有匹配(或更严格)的类型约束。这里是:
public异步任务GetItemsAsync(),其中T:new()
{
var data=await Database.Table().ToListAsync();
返回数据;
//返回Database.Table().ToListAsync();
}
表的类型参数上有一个泛型类型约束。然后,您必须确保要与表
一起使用的任何新的泛型类型参数都具有匹配(或更严格)的类型约束。这里是:
public异步任务GetItemsAsync(),其中T:new()
{
var data=await Database.Table().ToListAsync();
返回数据;
//返回Database.Table().ToListAsync();
}
如果我真的很幼稚,我很抱歉,但你能帮我更好地理解这一点吗?如果我真的很幼稚,我很抱歉,但你能帮我更好地理解这一点吗?
public async Task<List<T>> GetItemsAsync<T>() where T: new()
{
var data = await Database.Table<T>().ToListAsync();
return data;
//return Database.Table<TodoItem>().ToListAsync();
}