Вдохновленный JavaScript Closures Я пытался имитировать локальные статические переменные в C# с помощью Func <> Делегирование ... Вот мой код ..Локальная статическая переменная в C#?
public Func<int> Increment()
{
int num = 0;
return new Func<int>(() =>
{
return ++num;
});
}
Func<int> inc = Increment();
Console.WriteLine(inc());//Prints 1
Console.WriteLine(inc());//Prints 2
Console.WriteLine(inc());//Prints 3
Я стремлюсь знать, есть ли какой-либо другой способ моделирования локальная статическая переменная в C#? Спасибо.
Где статическая переменная? – Arjuna
@Arjuna: Я предполагаю, что они ссылаются на 'num', который становится частью замыкания и к нему нельзя обращаться иначе. –
Путем создания статической переменной C# было бы фактически создать класс с элементом' static'. Это похоже на то, что вы спрашиваете: «Как я могу заставить C# вести себя как Javascript?» который, я думаю, ответ должен быть «не надо». Это два разных языка, и заставить одного действовать, как и другого, только закончится слезами. –