Решений инкапсулирующих итераторы для Copy+Paste найдено не было, поэтому выкладываю свой вариант:
27 марта 2018 г.
13 марта 2018 г.
XPathNavigator ошибка при парсе.
В данной статье хотелось бы рассказать о проблеме, решение которой я не сразу понял, потому что такое исключение нигде не встречалось в интернете.
Работая с XPathNavigator, XPathDocument (возможно и с XDocument) и используя свой класс XsltContext (подкласс XmlNamespaceManager) контекст, что бы писать свои функции для XPath, можно словить исключение:
System.NullReferenceException "Object reference not set to an instance of an object."Причина:
at MS.Internal.Xml.XPath.BaseAxisQuery.matches(XPathNavigator e)
at MS.Internal.Xml.XPath.CacheChildrenQuery.Advance()
at MS.Internal.Xml.XPath.AttributeQuery.Advance()
at MS.Internal.Xml.XPath.LogicalExpr.cmpQueryQueryE(Op op, Object val1, Object val2)
at MS.Internal.Xml.XPath.LogicalExpr.Evaluate(XPathNodeIterator nodeIterator)
at MS.Internal.Xml.XPath.FilterQuery.EvaluatePredicate()
at MS.Internal.Xml.XPath.FilterQuery.Advance()
at MS.Internal.Xml.XPath.CacheChildrenQuery.GetNextInput()
at MS.Internal.Xml.XPath.CacheChildrenQuery.Advance()
at MS.Internal.Xml.XPath.CacheChildrenQuery.GetNextInput()
at MS.Internal.Xml.XPath.CacheChildrenQuery.Advance()
at MS.Internal.Xml.XPath.XPathSelectionIterator.MoveNext()
При использовании своей реализации XsltContext пропадает проверка на наличие добавленного namespace (через AddNamespace) у контекст менеджера. В результате, казалось бы обычный XPath запрос перестаёт ругаться на неизвестное пространство имен исключениями формата "XPathException. Additional information: Namespace prefix 'myns1' is not defined." и просто сваливается с NullReferenceException без какой либо причины.
8 марта 2018 г.
Классическая игра сапер (Minesweeper). Клон на С#,WPF
Все игры:
- Симулятор игры "Жизнь" ("Game of life") на WPF
- Классическая игра сапер (Minesweeper). Клон на С#,WPF
- Сетевые шахматы (Network Chess)
Скачать исходный код можно по ссылке:
В данной статье я расскажу о написании аналога классического "Сапера", который идёт стандартной игрой в Windows начиная с Windows XP. Англоязычное название этой игры звучит как Minesweeper. Про алгоритм можно подробно почитать на Wiki_(Сапер). Начиная с Windows 10 при установке операционной системы с нуля, игру, без предварительной загрузки из магазина, не найти, да и визуально скачанный сапер будет отличаться от классического, к которому лично я так привык. Поэтому скачать классического сапера по ссылке Minesweeper с так знакомыми глазу изображениями кнопок и вспомнить молодость :) Либо скомпилировать и запустить мой проект, в котором использованы изображения из классического сапера. Проект выполнен на языку C#, а визуальный интерфейс на WPF.
Предварительный просмотр оригинала и клона:
Подписаться на:
Сообщения (Atom)