Обнулить несколько объектов - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Вопрос, вероятно, очень простой, но я никак не могу найти ответ. Есть ссылочные типы, например объекты или массивы. Я сделал класс, хочу нескольким объектам этого класса присвоить значение null. Объединяю в массив, прогоняю цикл... Массив-то меняется, а вот исходные объекты нет. Но ведь тип-то ссылочный, как так? Простой пример (как я понимаю, объекты типа Bitmap - это тоже ссылочный тип):
Листинг программы
  1. var a = new Bitmap(100,100);
  2. var b = new Bitmap(200, 200);
  3. var с = new[] {a, b};
  4. с[0] = null;
  5. if (a == null) MessageBox.Show(@"Обнулили!");
Вот как тут сделать обнуление переменной

a

, чтобы не писать руками

a = null;

?

Решение задачи: «Обнулить несколько объектов»

textual
Листинг программы
  1. private Dictionary<string, AreaItem> areaItemList = new List<string, AreaItem>();
  2.  
  3. private void initList()
  4. {
  5.     areaItemList.Add("Rabb", new AreaItem(new Area(...), new Area(...), chb_skip1));
  6.     //далее по аналогии
  7. }
  8.  
  9. private void UseList()
  10. {
  11.     //теперь вместо _opTeamRabb, просто обращаемся к списку по ключу
  12.     if(areaItemList["Rabb"].Area != null)
  13.         МетодИлиЧтоТам(areaItemList["Rabb"].Area);
  14. }
  15.  
  16. public class AreaItem
  17. {
  18.     public static bool Ratio { get; set; }
  19.  
  20.     private Area _areaRatio;
  21.     private Area _areaNoRatio;
  22.     private CheckBox _checkBox;
  23.  
  24.     public Area Area
  25.     {
  26.         get
  27.         {
  28.             if (_checkBox.Checked)
  29.             {
  30.                 if (Ratio)
  31.                     return _areaRatio
  32.                 else
  33.                     return _areaNoRatio;
  34.             }
  35.             return null;
  36.         }
  37.     }
  38.  
  39.     public AreaItem(Area areaRatio, Area areaNoRatio, CheckBox checBox)
  40.     {
  41.         _areaRatio = areaRatio;
  42.         _areaNoRatio = areaNoRatio;
  43.         _checkBox = checBox;
  44.     }
  45. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы