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)); }