//baseNode类型为BaseNode,该类及其子类具有拷贝构造函数 Type nodeType = baseNode.GetType(); //传递给拷贝构造函数的参数数组,其中只有一个元素即baseNode BaseNode[] args = new BaseNode[1]{baseNode}; //m_childNodes是List<BaseNode>类型的链表,元素可能是BaseNode类型及其子类型 //通过反射可以调用不同的子类的拷贝构造函数 m_childNodes.Add((BaseNode)(nodeType.InvokeMember(null, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance, null, null, args)));