初始化方法中的const变量

本文关键字:const 变量 方法 初始化 | 更新日期: 2023-09-27 18:17:27

如果类中的方法有const变量,如:

public void MyMethod()
{
   const int myVariable = 5;
   // blah
}

myVariable只初始化一次(我相信是第一次调用该方法时)还是每次调用该方法时?

初始化方法中的const变量

都不是。从来没有。常量主要在编译时使用。它既不是变量也不是字段。文字值5将被任何使用常量("ldc.i4.5")的代码使用-但在运行时不需要常量本身。

从不。编译器会将该变量写入方法中,就好像它从未存在过一样,并将该值放在const名称所在的位置。

public double MyMethod()
{
    const int anInt = 45;
    return anInt * (1/2.0) + anInt;
}

将被编译为:

public double MyMethod()
{
    return 45 * (1/2.0) + 45; 
    //actually that would also be calculated at compile time,
    //but that's another implementation detail.
}