Я пишу библиотеку графов на C #.
Вот мой Graph.cs:
public class Graph : IGraph
{
public HashSet<INode> Nodes { get; set; }
public HashSet<IEdge> Edges { get; set; }
}
- Правило 1: при удалении узла , Я хочу, чтобы все ребра, которые были удалены из них, были удалены из HashSet в IEdge.
- Правило 2: Когда Edge добавлен , я хочу, чтобы оба экземпляра узла вEdge instanse добавить в HashSet из INode.
Что я могу сделать для получения этого поведения?
Теперь пользователь библиотеки просто использует:
g.Edges.Add(new Edge(n5, n6));
, чтоn5 и n6 являются Node
инстансами, но в g.Nodes HashSet нет n5 и n6.
Мне было интересно, можно ли как-нибудь вызвать такой метод, когда в Edge инстанс добавляетсяHashSet в свойстве Setter of Edges :
void UpdateNodes(IEdge edge)
{
Nodes.Add(edge.A_Node);
Nodes.Add(edge.Another_Node);
}