/// <summary> /// Deep Clone /// </summary> /// <returns></returns> public EQASubSystemCollectin Copy() { EQASubSystemCollectin subSystems = new EQASubSystemCollectin(); if (this.Count <= 0) { return(subSystems); } else { foreach (EQASubSystem subSystem in this) { subSystems.Add(subSystem.Copy()); } return(subSystems); } }
/// <summary> /// 从SYS表的多个数据行和Loop表, Eqp表生成子系统集合类的实例 /// </summary> /// <param name="rowsEQASubSystem"></param> /// <param name="tableEQALoop"></param> /// <param name="tableEQAEquipment"></param> /// <returns></returns> public static EQASubSystemCollectin CreateEQASubSystems(DataRowCollection rowsEQASubSystem, DataTable tableEQACable, DataTable tableEQALoop, DataTable tableEQAEquipment) { if (rowsEQASubSystem == null) { throw new System.ArgumentNullException("from function CreateEQASubSystems", "Parameter rowEQASubSystem equals to null"); } if (tableEQACable == null) { throw new System.ArgumentNullException("from function CreateEQASubSystems", "Parameter tableEQACable equals to null"); } if (tableEQALoop == null) { throw new System.ArgumentNullException("from function CreateEQASubSystems", "Parameter tableEQALoop equals to null"); } if (tableEQAEquipment == null) { throw new System.ArgumentNullException("from function CreateEQASubSystems", "Parameter tableEQAEquipment equals to null"); } EQASubSystemCollectin subSystems = new EQASubSystemCollectin(); if (rowsEQASubSystem.Count <= 0) { return(subSystems); } lock (rowsEQASubSystem) { lock (tableEQALoop) { lock (tableEQAEquipment) { try { foreach (DataRow rowSubSystem in rowsEQASubSystem) { subSystems.Add(CreateEQASubSystem(rowSubSystem, tableEQACable, tableEQALoop, tableEQAEquipment)); } } catch (DataException ex) { MessageBoxWinForm.Info("数据访问错误", ex.Message, ""); } } } } return(subSystems); }