调用父构造函数的最简单方法

时间:2015-09-17 18:57:48

标签: c# inheritance extending-classes

我正在使用具有公共ParentClass的实体框架,其中function通过搜索配置和数据库条目来执行许多重要操作,并且无法编辑此代码,因为它来自第三方。但是,我想在function中的ParentClass无法访问的白名单信息中添加额外的“搜索”。

下面的代码是对正在发生的事情的模拟。我只是想知道,是否有更好的方法来扩展ParentClass并访问它function

public ParentClass : ClassInterface
{
    foo bar;
    public Parent(foo _bar) 
    {
        this.bar = _bar
    }

    function(int) 
    {
        // do things with this.bar
    }
}

public ChildClass : ParentClass, ClassInterface 
{
    public ChildClass(foo _bar) : base(_bar) { }


    public virtual function(int) 
    {
        bool x = base.function(int)
        if (!x) 
        {
            ... stuff
        }

        ... otherstuff
    }
}

1 个答案:

答案 0 :(得分:1)

调用base.function()是非常正确的事情。所以你的代码正在做正确的事情。话虽这么说,当你认为你需要这样的时候,你应该考虑采用更基于组合的方法。