如何从方法返回类型t

时间:2011-04-21 11:39:19

标签: c# .net .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;
    }

我目前正在从我的控制器中调用该类。 (TaskOrder实现IEntity)

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

1 个答案:

答案 0 :(得分: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;
}