如果我在C#中编写一个方法但从不调用它,它会被编译吗?

时间:2016-12-28 02:18:43

标签: c# methods compilation

以下是一些代码说明:

abstract class parent
{
    protected void longFunction()
    {
        //........
    }

    protected void longLongLongFunction()
    {
        //........
    }

    protected abstract void changeMe();
}

class child : parent
{
    protected override void changeMe()
    {
        longFunction();
    }
}

在我的特定情况下,我更自然地在抽象父类中声明所有可能的方法,然后子项只接收/调用它们需要的方法。因此,如果一个子类只调用父类中声明的一个5方法,那么生成的对象是否包含4个从未调用过的函数的代码?如果我在外部声明这些方法,我将不得不向它们传递许多参数,并且通过这种方法很简单,因为它们可以直接使用" protected"父类的字段。那么在上面的代码中,longLongLongFunction是否会在编译时被包含在子类的创建实例中,这使得最终的程序不必要地变大了?

我认为这个问题与this question不重复,因为有些孩子会调用别人不使用的方法。所以在某些时刻,这些方法将被调用,并且需要,但不是所有的孩子。我们假设10个孩子中只有5个会打电话给第二种方法。是否所有10个子实例都包含该方法只是因为它是在父语句中声明的?

0 个答案:

没有答案