public IDisposable Attach(ITreeBuilderAlgorithm <TVertex, TEdge> algorithm) { Contract.Requires(algorithm != null); algorithm.TreeEdge += TreeEdge; return(new DisposableAction(() => algorithm.TreeEdge -= TreeEdge)); }
public IDisposable Attach(ITreeBuilderAlgorithm <TVertex, TEdge> algorithm) { algorithm.TreeEdge += new EdgeAction <TVertex, TEdge>(TreeEdge); return(new DisposableAction( () => algorithm.TreeEdge -= new EdgeAction <TVertex, TEdge>(TreeEdge) )); }
/// <inheritdoc /> public IDisposable Attach(ITreeBuilderAlgorithm <TVertex, TEdge> algorithm) { if (algorithm is null) { throw new ArgumentNullException(nameof(algorithm)); } algorithm.TreeEdge += OnEdgeDiscovered; return(Finally(() => algorithm.TreeEdge -= OnEdgeDiscovered)); }
public void Detach(ITreeBuilderAlgorithm <TVertex, TEdge> algorithm) { algorithm.TreeEdge -= new EdgeEventHandler <TVertex, TEdge>(RecordEdge); }