C#子类使用相同的方法

Mar*_*ijn 2 c# methods subclass

我有一个带有两个子类的超类.这两个子类都有一个方法,用于检查章节是否包含内容.对于子类1,此方法是HasContent(int chapterID),对于子类2,这是HasContent(int chapterID,int institution).如您所见,子类2有一个额外的参数.两种方法的目的是相同的.

我想将方法​​HasContent放在超类中.你觉得我需要这样做吗?如果是这样,我该如何实现呢?或者将两个方法放在他们自己的子类中更明智?

编辑:

HasDocuments的主体如下所示:Subclass1:

Database DB = new Database();
int res = DB.ExecuteSpRetVal(chapterID, mInstitutionID);

if (res > 0)
    return true;
else
    return false;
Run Code Online (Sandbox Code Playgroud)

Subclass2:

Database DB = new Database();
int res = DB.ExecuteSpRetVal(chapterID);

if (res > 0)
    return true;
else
    return false;
Run Code Online (Sandbox Code Playgroud)

Hos*_*Aly 6

编辑:根据问题更新进行更新.

既然你在两种方法中显然都有相同的逻辑,我会像这样重构它:

abstract class SuperClass
{
    protected bool HasContentImpl(int chapterID, int institution)
    {
        Database db = new Database();
        int result;

        if (institution >= 0) // assuming negative numbers are out of range
            result = db.ExecuteSpRetVal(chapterID, institution);
        else
            result = db.ExecuteSpRetVal(chapterID);

        return result > 0;
    }
}

class SubClass1 : SuperClass
{
    public bool HasContent(int chapterID)
    {
        return base.HasContentImpl(chapterID, -1);
    }
}

class SubClass2 : SuperClass
{
    public bool HasContent(int chapterID, int institution)
    {
        return base.HasContentImpl(chapterID, institution);
    }
}
Run Code Online (Sandbox Code Playgroud)