Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果我用C#写下一个方法,但从不调用它,它会被编译吗?_C#_Methods_Compilation - Fatal编程技术网

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

如果我用C#写下一个方法,但从不调用它,它会被编译吗?,c#,methods,compilation,C#,Methods,Compilation,下面是一些代码说明: abstract class parent { protected void longFunction() { //........ } protected void longLongLongFunction() { //........ } protected abstract void changeMe(); } class child : parent { prote

下面是一些代码说明:

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

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

    protected abstract void changeMe();
}

class child : parent
{
    protected override void changeMe()
    {
        longFunction();
    }
}
在我的特殊情况下,在抽象父类中声明所有可能的方法,然后子类只选择/调用它们需要的方法,对我来说更舒服。因此,如果一个子类只调用父类中声明的5个方法中的一个,那么生成的对象是否包含4个从未调用过的函数的代码?如果我在外部声明这些方法,我将不得不向它们传递大量参数,这样做非常简单,因为它们可以直接使用父类的“受保护”字段。那么在上面的代码中,在编译时是否会在创建的子类实例中包含LongFunction,从而使最终的程序变得不必要的大


我认为这个问题不是重复的,因为有些孩子会调用其他孩子没有使用的方法。因此,在某个时刻,这些方法将被调用和需要,但不是所有的孩子都会调用。假设10个孩子中只有5个会调用第二个方法。是否所有10个子实例都会包含该方法,仅仅因为它是在父对象中声明的?

希望所有版本的Visual studio都有编译功能,它给出了
将被编译的答案?
告诉我该如何说,然后再编辑它!我知道它被解释了,但我希望ppl能理解我。想要理解我的人都会理解我。@NIki你的问题很好,我不太明白不幸的是——编译器不编译静态可验证的死代码并不罕见。然而,msbuild和mono都不能消除死代码-根据重复的targetvs,每次调用它们时,可能只会创建一个指向方法的指针,并且在最终的可执行/可解释文件中只保留代码本身的一个显式副本,在这种情况下,我的问题是没有意义的,因为这样不会浪费大量内存。@NIki事实上,它利用了Visual studio所有版本都有编译功能的希望,它给出了
它会被编译吗?
告诉我编辑它时应该怎么说!我知道它被解释了,但我希望ppl能理解我。想要理解我的人都会理解我。@NIki你的问题很好,我不太明白不幸的是——编译器不编译静态可验证的死代码并不罕见。然而,msbuild和mono都不能消除死代码-根据重复的targetvs,每次调用它们时,可能只会创建一个指向方法的指针,并且在最终的可执行/可解释文件中只保留代码本身的一个显式副本,在这种情况下,我的问题是没有意义的,因为不会有很大的内存浪费。@NIki实际上,它利用了