public static void WhatHappens_ToNodeNextsReferences_WhenYouSetTailToNull() { var linkedList = new LinkedList <int>(); linkedList.AddToFront(new LinkedListNode <int>(3)); linkedList.AddToFront(new LinkedListNode <int>(5)); linkedList.AddToFront(new LinkedListNode <int>(7)); var node = linkedList.Head; while (node != linkedList.Tail) { node = node.Next; var result = object.ReferenceEquals(node, linkedList.Tail); if (result) { node.Value = 14; result = object.ReferenceEquals(node, linkedList.Tail); node = null; // will this delete it? No you can change properties but you can't delete another reference type by setting another reference type to null result = object.ReferenceEquals(node, linkedList.Tail); } } linkedList.RemoveLast(); }
public static void WhatHappens_ToNodeNextsReferences_WhenYouSetTailToNull() { var linkedList = new LinkedList<int>(); linkedList.AddToFront(new LinkedListNode<int>(3)); linkedList.AddToFront(new LinkedListNode<int>(5)); linkedList.AddToFront(new LinkedListNode<int>(7)); var node = linkedList.Head; while(node != linkedList.Tail) { node = node.Next; var result = object.ReferenceEquals(node, linkedList.Tail); if (result) { node.Value = 14; result = object.ReferenceEquals(node, linkedList.Tail); node = null; // will this delete it? No you can change properties but you can't delete another reference type by setting another reference type to null result = object.ReferenceEquals(node, linkedList.Tail); } } linkedList.RemoveLast(); }