初始化值只有一次
问题描述:
如果你有一个大的功能,并在中间的某个地方,你有一个应声明仅在第一次的值其遭遇。
在C++中,你可以使用静态为此:
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;
}
.....
}
“如果你有一个很大的功能”那就是你的问题。 – svick
问题不在于为什么c#不允许函数内的静态变量 – Merni
如果它是一个“私有静态”字段,它对你有什么影响吗?这是您在C#中可以做的最好的选择。 – Jon