コード例 #1
0
ファイル: Program.cs プロジェクト: aracen74/RefreshMyMemory
        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();
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: aracen74/RefreshMyMemory
        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();
        }