Обнулить несколько объектов - C#
Формулировка задачи:
Добрый день.
Вопрос, вероятно, очень простой, но я никак не могу найти ответ.
Есть ссылочные типы, например объекты или массивы.
Я сделал класс, хочу нескольким объектам этого класса присвоить значение null.
Объединяю в массив, прогоняю цикл... Массив-то меняется, а вот исходные объекты нет.
Но ведь тип-то ссылочный, как так?
Простой пример (как я понимаю, объекты типа Bitmap - это тоже ссылочный тип):
Вот как тут сделать обнуление переменной
var a = new Bitmap(100,100);
var b = new Bitmap(200, 200);
var с = new[] {a, b};
с[0] = null;
if (a == null) MessageBox.Show(@"Обнулили!");a
, чтобы не писать рукамиa = null;
?Решение задачи: «Обнулить несколько объектов»
textual
Листинг программы
private Dictionary<string, AreaItem> areaItemList = new List<string, AreaItem>();
private void initList()
{
areaItemList.Add("Rabb", new AreaItem(new Area(...), new Area(...), chb_skip1));
//далее по аналогии
}
private void UseList()
{
//теперь вместо _opTeamRabb, просто обращаемся к списку по ключу
if(areaItemList["Rabb"].Area != null)
МетодИлиЧтоТам(areaItemList["Rabb"].Area);
}
public class AreaItem
{
public static bool Ratio { get; set; }
private Area _areaRatio;
private Area _areaNoRatio;
private CheckBox _checkBox;
public Area Area
{
get
{
if (_checkBox.Checked)
{
if (Ratio)
return _areaRatio
else
return _areaNoRatio;
}
return null;
}
}
public AreaItem(Area areaRatio, Area areaNoRatio, CheckBox checBox)
{
_areaRatio = areaRatio;
_areaNoRatio = areaNoRatio;
_checkBox = checBox;
}
}