using System.Collections.Generic; public class TBlackBoard { class TBlackboardItem { private object m_Value; public void SetValue(object v) { m_Value = v; } public T GetValue() { return (T)m_Value; } } private Dictionary m_ItemDict; public TBlackBoard() { m_ItemDict = new Dictionary(); } ~TBlackBoard() { m_ItemDict.Clear(); m_ItemDict = null; } public void SetValue(string key, object v) { TBlackboardItem item; if (m_ItemDict.ContainsKey(key) == false) { item = new TBlackboardItem(); m_ItemDict.Add(key, item); } else { item = m_ItemDict[key]; } item.SetValue(v); } public T GetValue(string key, T defaultValue) { if (m_ItemDict.ContainsKey(key) == false) { return defaultValue; } return m_ItemDict[key].GetValue(); } }