如何合并除对象类型外相同的方法

本文关键字:类型 方法 对象 何合并 合并 | 更新日期: 2024-10-22 17:36:46

除了对象的Type之外,我有7个方法是相同的。

这里有两个:

1)

public MyResult CreateMyResult(MyResult mi, MyVersion myv)
{
    MyVersionEntity myve = _db.MyVersionEntity.Where(r => r.Id == myv.Id).First();
    MyResultEntity mie = new MyResultEntity();
    myve.MyResultEntityAssoc.Add(mie);
    mie = _updateMyResultEntity(mi, mie);
    mi.Id = mie.Id;
    return mi;
}

2)

public MyIssue CreateMyIssue(MyIssue mi, MyVersion myv)
{
    MyVersionEntity myve = _db.MyVersionEntity.Where(r => r.Id == myv.Id).First();
    MyIssueEntity mie = new MyIssueEntity();
    myve.MyIssueEntityAssoc.Add(mie);
    mie = _updateMyIssueEntity(mi, mie);
    mi.Id = mie.Id;
    return mi;
}

有没有办法把它们都整合起来?

谢谢!

如何合并除对象类型外相同的方法

使用的泛型

public T Create<T>(T mi, MyVersion myv)
{
    MyVersionEntity myve = _db.MyVersionEntity.Where(r => r.Id == myv.Id).First();
    Entity<T> mie = new Entity<T>();
    myve.EntityAssoc<T>.Add(mie);
    mie = _updateEntity<T>(mi, mie);
    mi.Id = mie.Id;
    return mi;
}

像这样称呼它

 Create<MyResult>(...)
 Create<MyIssue>(...)