public virtual object Clone()
 {
     dcObject newone = new dcObject();
     CloneTo(newone);
     return newone;
 }
 protected dcObject CloneTo(dcObject dc)
 {
     dc.NameInSymbol = this.NameInSymbol;
     foreach (dcSymbol sym in variables.Keys)
     {
         dc.set_variables(sym, variables[sym].Clone() as dcData);
     }
     return dc;
 }