我有以下方法设置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);
答案 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;
}