Ниже C# код
ResBlock resBlock1 = new ResBlock();
resBlock1.CustomerID = "ABC";
Block block = new Block();
block.Tag = resBlock1;
resBlock1 = null;
Console.WriteLine(((ResBlock)block.Tag).CustomerID);
Вывод будет "AB C". Конечно, это пример того, с чем я сталкиваюсь, но мой код намного сложнее.
Я хотел бы понять, есть ли способ получить block.Tag = null
, когда объект, на который имеется ссылка (resBlock1
) ) устанавливается на null
или уничтожается каким-либо другим способом (какой?).
Классы очень просты, так как это всего лишь пример:
public class ResBlock: IDisposable
{
public DateTime From { get; set; }
public DateTime To { get; set; }
public string CustomerID { get; set; }
public string ItemID { get; set; }
[...]
public ResBlock() {
DaysStatus = new List<ResBlockDayStatus>();
Deleted = false;
}
public bool LogicallyDeleted { get; set; }
public void Dispose() { }
}
public class Block
{
public bool Selected { get; set; }
public object Tag { get; set; }
public DateTime From { get; set; }
public DateTime To { get; set; }
}