コード例 #1
0
 /// <summary>
 /// Append an identifier
 /// </summary>
 /// <param name="id">Identifier</param>
 /// <returns></returns>
 public CircuitIdentifier Grow(CircuitIdentifier id)
 {
     string[] npath = new string[Path.Length + id.Path.Length];
     for (int i = 0; i < Path.Length; i++)
     {
         npath[i] = Path[i];
     }
     for (int i = 0; i < id.Path.Length; i++)
     {
         npath[i + Path.Length] = id.Path[i];
     }
     return(new CircuitIdentifier(npath));
 }
コード例 #2
0
 /// <summary>
 /// Check if a component exists
 /// Multiple names can be specified, in which case the first names will refer to subcircuits
 /// </summary>
 /// <param id="id">A list of names. If there are multiple names, the first names will refer to a subcircuit</param>
 /// <returns></returns>
 public bool Contains(CircuitIdentifier id) => objects.ContainsKey(id);
コード例 #3
0
 /// <summary>
 /// Search for an object by path
 /// </summary>
 /// <param id="path">The path of the object</param>
 /// <returns></returns>
 public ICircuitObject this[CircuitIdentifier id] => objects[id];
コード例 #4
0
 /// <summary>
 /// Get a circuit object
 /// </summary>
 /// <param id="id">Identifier</param>
 /// <param id="obj"></param>
 /// <returns></returns>
 public bool TryGetObject(CircuitIdentifier id, out ICircuitObject obj) => objects.TryGetValue(id, out obj);
コード例 #5
0
 /// <summary>
 /// Get a node by identifier
 /// </summary>
 /// <param id="id">Identifier</param>
 /// <returns></returns>
 public CircuitNode this[CircuitIdentifier id]
 {
     get => map[id];