Re[14]: C# [Proposal] init block for safe initialization of
От: Sinclair Россия https://github.com/evilguest/
Дата: 26.12.25 05:35
Оценка:
Здравствуйте, 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 так и остались непроинициализированными. Вы код-то попробуйте запустить
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.