public void CalculateAValues() { NeedCalculate = false; AValueStruct vs = m_NodeVS; if (m_NodeMask.CalculateAll) { m_NodeMask.CalculateAll = false; m_NodeMask = null; } // 重置标脏的属性数据 vs.Reset(m_NodeMask); // 合并子节点的数值 for (int i = 0; i < m_nChildNodeCnt; i++) { AValueNode pNode = m_pChildNode[i]; if (null != pNode) { if (pNode.NeedCalculate) { pNode.CalculateAValues(); // 如果子节点需要重新计算... } // 合并子节点的当前属性结构 pNode.CombineAValues(vs, m_NodeMask, true); } } // 合并本节点的属性结构 AddupAValues(vs, m_NodeMask); ExNodeCalculate(vs, m_NodeMask); ExportResult(vs, m_NodeMask); m_NodeMask.Reset(); // 复位 }