Здравствуйте, Serginio1, Вы писали:
S>Здравствуйте, Sinclair, Вы писали:
S>>попытка 2:
S>>S>>var node1 = new Node("Hello") { Next = null!, Previous = null! };
S>>var node2 = new Node("World") { Next = node1, Previous = node1) };
S>>node1.Previous = node2;
S>>foreach(var n in Iterate(node1)
S>> Console.WriteLine(n);
S>>
S>>Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
S>>Попробуйте решить проблему при помощи EmptyNode.
S>S>var node1 = new Node("Hello") { Next = Node.EmptyNode, Previous = Node.EmptyNode };
S>var node2 = new Node("World") { Next = node1, Previous = Node.EmptyNode) };
S>node1.Previous = node2;
S>foreach(var n in Iterate(node1)
S>Console.WriteLine(n);
S>
S>И никаких System.NullReferenceException
Во-первых, вы сначала напишите код Node.EmptyNode

У нас проблема не в NullReferenceException, а в нарушении инварианта. В частности, node1.Next и node2.Previous так и остались непроинициализированными. Вы код-то попробуйте запустить