Clone
Espacio de nombres: Digi21.DigiNG.Entities
Ensamblado: Digi21.DigiNG
Devuelve una copia de la entidad que no pertenece a ningún archivo de dibujo y que, por tanto, se puede modificar.
public Entity Clone()
Cada clase derivada declara con new un Clone() que devuelve el tipo de lectura y escritura: ReadOnlyLine.Clone devuelve Line, ReadOnlyPolygon.Clone devuelve Polygon, ReadOnlyComplex.Clone devuelve Complex, ReadOnlyPoint.Clone devuelve Point y ReadOnlyText.Clone devuelve Text. El método que se ejecuta depende del tipo de la variable: Entity.Clone() llama al Clone() de la clase derivada y además copia los atributos de los códigos (lee la tabla). ICloneable.Clone() llama a Entity.Clone().
Valor devuelto
Una entidad nueva del tipo de lectura y escritura, con Owner a null y ReadOnly a false.
| Dato | Copia |
|---|---|
| Coordenadas, huecos de un polígono y entidades de un complejo | Se copian. |
Color, Weight, FillColor y Deleted |
Se copian. |
Codes |
Se copian los nombres, las tablas, los identificadores y la visibilidad. |
Code.Attributes de cada código |
Con Entity.Clone(): un Dictionary<string, object> nuevo con una copia de los atributos de cada código. Con el Clone() de la clase derivada: un diccionario de solo lectura con los atributos que guarda la entidad nativa (los de una entidad leída de un archivo); los atributos asignados en .NET a los códigos no se copian. |
Attributes |
Diccionario de solo lectura con los atributos que guarda la entidad nativa (los de una entidad leída de un archivo). Los atributos asignados en .NET no se copian. Para cambiarlos, asigna otro diccionario. |
UserData y Hidden |
No se copian. |
Ejemplo
// línea es una ReadOnlyLine leída de un archivo: la copia es una Line.
var copia = línea.Clone();
copia.Points.Add(new Point3D(0, 0, 0));