繁体   English   中英

C# 中的泛型方法包含对泛型类型(类)成员的引用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM