Как к: переменная сброса в C#?

23
задан John Saunders 22 December 2014 в 22:44
поделиться

8 ответов

Нет действительно эквивалента "сбросу".

самое близкое соответствие, которое я знаю, является использованием значение по умолчанию ключевое слово.

, Например:

MyType myvar = default(MyType);
string a = default(string);

переменная будет все еще "установлена", но она будет иметь свое значение по умолчанию.

26
ответ дан danronmoon 29 November 2019 в 00:53
поделиться

Вы не можете. Нет никакого понятия "сбрасывания" переменной. Можно установить его на различное значение - 0, пустой указатель, независимо от того, что является соответствующим. Экземпляр/статические переменные даже не имеет понятия того, устанавливается ли переменная/сбрасывается, и локальные переменные только "определенно присвоились" или "не определенно присвоенный".

, Что это, Вы пытаетесь достигнуть?

26
ответ дан Jon Skeet 29 November 2019 в 00:53
поделиться

Generally, устанавливающий его в NULL, делает задание (для переменной типов как интервал, необходимо ли было бы сделать его nullable интервалом версии?).

, Если Вы только хотите использовать переменную в течение короткого периода времени в большей функции, можно определить объем его, как это:

{
    int i = 2;
}

переменная только продлится до закрывающей фигурной скобки.

, Если они не покрывают Ваше обстоятельство тогда, может Вы уточнять то, где необходимо сделать это.

9
ответ дан John Saunders 29 November 2019 в 00:53
поделиться

Возможно, требуется освободить объект , на который ссылается переменная:

MyVar = null;
5
ответ дан gimel 29 November 2019 в 00:53
поделиться

Для объекта можно установить его в NULL, строка лучше всего установлена Представить в виде строки. Пустой, или можно объявить переменную, столь же nullable, такую как:

int? i = null;
1
ответ дан Jon Skeet 29 November 2019 в 00:53
поделиться

Переменные типа значения не должны сбрасывать. Они постоянно выделяются.

Для переменных ссылочного типа Вы просто устанавливаете их на , пустой указатель и сборщик "мусора" уничтожит связанный объект (и освободит память). Но обратите внимание, что сама переменная продолжит существовать всюду по ее объему (блок кода, метод, объектная жизнь...)

, Если Вы захотите использовать, это к свободной памяти тогда просто установило все не нужные объекты в NULL и ожидает сборщика "мусора", чтобы сделать его задание.

Редактирование : Как отмечено в комментариях я опустил говорить, что сборщик "мусора" сразу не запустит набор. Это будет происходить обычно, когда платформа попробует к выделенной памяти и не сможет найти достаточно свободным. Возможно запустить "вручную" сборку "мусора", но это не желательно и могло бы ухудшить поведение программы. В большинстве целей поведение по умолчанию GC должно быть достаточно.

3
ответ дан rslite 29 November 2019 в 00:53
поделиться

Вы могли определить объем для той переменной. Когда объем выйдет, переменная больше не будет определяться:

System.Console.WriteLine("let's give this a try: ");
{
    int j = 0;
    System.Console.WriteLine(j);
}
//Won't compile with the following line.
//System.Console.WriteLine(j);
2
ответ дан Rick Minerich 29 November 2019 в 00:53
поделиться

лично я просто иду

переменная = Ничто

это, кажется, освобождает ресурсы особенно при работе с мобильными телефонами!

-1
ответ дан 29 November 2019 в 00:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: