public override Node StartNode() { // Getting the start node is expensive in some Path implementations, so cache it if (_cachedStartNode == null) { _cachedStartNode = _start.startNode(); } return(_cachedStartNode); }