如何从方法返回类型t

fro*_*sty 0 .net c# .net-4.0

我有以下方法设置IEntity的一些属性.我的一般想法是,我希望我的所有实现IEntity的类都使用这个帮助器.问题是这会返回IEntity而不是类型T.怎么会这样做?

    public static IEntity Create(IEntity entity, Company company)
    {
        entity.Company = company;
        entity.Key = Guid.NewGuid();
        entity.Created = DateTime.Now;
        entity.Modified = DateTime.Now;
        entity.ModifiedByUserName = "xxx";
        entity.CreatedByUserName = "xxx";
        return entity;
    }
Run Code Online (Sandbox Code Playgroud)

我现在从我的控制器这样调用类.(TaskOrder实现IEntity)

var taskOrder = EntityHelper.Create(TaskOrder(),company);

Ily*_*gan 10

阅读C#中的泛型,网上有很多资料.

以下是基于您的代码的示例:

public static T Create<T>(T entity, Company company) where T : IEntity
{
    entity.Company = company;
    entity.Key = Guid.NewGuid();
    entity.Created = DateTime.Now;
    entity.Modified = DateTime.Now;
    entity.ModifiedByUserName = "xxx";
    entity.CreatedByUserName = "xxx";
    return entity;
}
Run Code Online (Sandbox Code Playgroud)