只初始化函数内部的值一次

本文关键字:一次 初始化 函数 内部 | 更新日期: 2023-09-27 18:07:48

可能重复:
C#中的静态变量

如果您有一个大型函数,并且在中间的某个地方有一个值,该值只应在第一次遇到时声明。

在c++中,您可以使用static:

void func() {
  ...
  ...
  static double startPosition = 0.0;
  int var = startPositino - value;
  startPosition = var;
  ...
}

但是在c#中,函数内部不能有静态变量,有没有其他方法可以做到这一点,而不在函数外部声明它?

只初始化函数内部的值一次

bool changed = true;

void func() // the large function from the question (it wasn't specified what it does or what is called)
{
   .....
   if(changed)
   {
       // here you initalize you variable (the static from the c++)
       changed = false;
   }
   .....
}