public virtual object Clone() { ClassPointer owner = (ClassPointer)_owner.Clone(); EventClass obj = (EventClass)Activator.CreateInstance(this.GetType(), owner); obj.IsStatic = this.IsStatic; obj.MemberId = MemberId; obj.SetName(_name); obj.Description = Description; if (_handlerType != null) { obj._handlerType = (DataTypePointer)_handlerType.Clone(); } return(obj); }