Exemple #1
0
        public IDisposable Attach(IUndirectedTreeBuilderAlgorithm <TVertex, TEdge> algorithm)
        {
            Contract.Requires(algorithm != null);

            algorithm.TreeEdge += this.TreeEdge;
            return(new DisposableAction(() => algorithm.TreeEdge -= this.TreeEdge));
        }
 public IDisposable Attach(IUndirectedTreeBuilderAlgorithm <TVertex, TEdge> algorithm)
 {
     algorithm.TreeEdge += new UndirectedEdgeAction <TVertex, TEdge>(this.TreeEdge);
     return(new DisposableAction(
                () => algorithm.TreeEdge -= new UndirectedEdgeAction <TVertex, TEdge>(this.TreeEdge)
                ));
 }
        /// <inheritdoc />
        public IDisposable Attach(IUndirectedTreeBuilderAlgorithm <TVertex, TEdge> algorithm)
        {
            if (algorithm is null)
            {
                throw new ArgumentNullException(nameof(algorithm));
            }

            algorithm.TreeEdge += OnEdgeDiscovered;
            return(Finally(() => algorithm.TreeEdge -= OnEdgeDiscovered));
        }