Подтвердить что ты не робот

Как удалить переменную в С#?

Это действительно смешно, но мне не удалось найти ответ самостоятельно. Как я могу отключить переменную? Например. php имеет функцию unset ($ var).

4b9b3361

Ответ 1

На самом деле не существует эквивалента "unset".

Самое близкое совпадение, которое я знаю, это использование ключевого слова default.

Например:

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

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

Ответ 2

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

Чего вы пытаетесь достичь?

Ответ 3

Как правило, его значение равно null, задает ли задание (для переменной типов, например int, вы должны сделать ее нулевой версией int?).

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

{
    int i = 2;
}

Переменная будет действовать только до закрытия скобки.

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

Ответ 4

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

MyVar = null;

Ответ 5

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

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

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

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

Ответ 6

Чтобы отключить переменную среды, используйте тот же метод Environment.SetEnvironmentVariable, но передайте null или string.Empty как значение http://msdn.microsoft.com/en-us/library/96xafkes(v=vs.110).aspx

"Если значение пустое и переменная среды с именем переменной существует, переменная среды удаляется."

Ответ 7

Для объекта вы можете установить его в значение null, строка лучше всего установить в String.Empty, или вы можете объявить переменную как nullable, например:

int? i = null;

Ответ 8

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

System.Console.WriteLine("let give this a try: ");
{
    int j = 0;
    System.Console.WriteLine(j);
}
//Won't compile with the following line.
//System.Console.WriteLine(j);

Ответ 9

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

variable = Nothing

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