[英]Generic method in C# containing reference to member of generic type (class)
我尝试编写泛型方法并尝试表达对泛型类型成员的约束。
private async Task<T> FindOrAdd<T>(DbSet<T> dbSetOfT, string name) where T : class
{
var result = await dbSetOfT.FirstOrDefaultAsync(c => c.Name = name);
return result ?? new T { Name = name };
}
是否有可能做到这一点?
这可以使用接口来实现。 我已将接口添加到T
的标准中,还添加了new()
以使New T
成为可能
private async Task<T> FindOrAdd<T>(DbSet<T> dbSetOfT, string name) where T
: class,IName,new()
{
var result = await dbSetOfT.FirstOrDefaultAsync(c => c.Name == name);
return result ?? new T { Name = name };
}
public interface IName
{
public string Name{get;set;}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.