Объявление static переменной в методе - C#
Формулировка задачи:
В С/C++ в методах можно объявлять static переменные. Пытаюсь сделать так же в C#,но ошибка:
static void some_function()
{
static int x = 10;
}Решение задачи: «Объявление static переменной в методе»
textual
Листинг программы
class Program
{
public static Func<int>GetFunc()
{
int a=0;
return ()=>++a;
}
static void Main()
{
//тут выполняется вызов функции.
//по идее локальная переменная а внутри функции должна быть
//уничтожена после завершения функции
Func<int> f = GetFunc();
Func<int> f1 = GetFunc();
//однако ее использует анонимная функция f локальная переменная а
//продолжает существовать пока существует f
for(int i=0; i<10; i++)
{
Console.WriteLine(f());
}
//тут мы увидим 1, так как для f1 была создана своя переменная а
Console.WriteLine(f1());
Console.Read();
}