private string m_name; // Name of this topic #endregion Fields #region Constructors /// <summary> /// Constructor. Used internally only. /// </summary> /// <param name="parent"></param> /// <param name="name"></param> internal Topic(Topic parent, string name) { m_children = new Dictionary<string, Topic>(); Parent = parent; m_name = name; }
/// <summary> /// Create (or retrieve) a direct child of this node by name /// </summary> /// <param name="name"></param> /// <returns></returns> protected Topic CreateDirectChild(string name) { Topic child; lock (m_children) { if (!m_children.TryGetValue(name, out child)) { // Create the new child child = new Topic(this, name); m_children.Add(name, child); } } return child; }