¿Por qué utilizar Clone()?

¿Cuál es el propósito principal de usar Clone() en C#?

¿Cuál es el beneficio de usar?

No está claro a partir de su definición? 😉
El objetivo principal es crear un clon de un objeto. El beneficio es tener el duplicado. Alguna pregunta?
posibles duplicados de ¿por Qué debería de implementar ICloneable en c#?

OriginalEl autor What’sUP | 2011-03-26

3 Kommentare

  1. 16

    La idea es que el uso de Clone puede crear un nuevo objeto del mismo tipo que el que se invoca, sin saber el tipo exacto del objeto que se va a invocar en.

    Por ejemplo:

    void Test(ICloneable original)
    {
        var cloned = original.Clone();
    }

    Aquí cloned es del mismo tipo en tiempo de ejecución como original, y usted no necesita saber lo que fue de tipo para realizar la clonación.

    Sin embargo, la utilidad de ICloneable es bastante mucho ninguno, porque no define el semántica de la operación de clonación: es un copia superficial o un copia profunda? Desde la interfaz no carece de uno o el otro, realmente no se puede saber lo que está recibiendo de vuelta. Y ya sabiendo que es esencial debido a que usted necesita para manejar el clon en consecuencia, ICloneable en sí es bastante quemado una tarjeta.

    La definición de su propia interfaz con un Clone método (con una semántica definida) hace mucho sentido, sin embargo.

    Actualización: Ver también: ¿Por qué debería de implementar ICloneable en c#?

    OriginalEl autor Jon

  2. 3

    Clone() por lo general proporciona una superficial copia de un objeto (es decir, ver De la matriz.Clone() ), copias de las referencias, pero no los objetos referenciados.

    Es útil si usted entiende sus limitaciones, principalmente que la semántica de lo que realmente se copian en el nuevo objeto son en su mayoría de izquierda a el ejecutor de la Clone() método debido a que la interfaz de ICloneable que define the Clone() método es el especificado (por lo que podría ser una copia superficial o una copia en profundidad, pero no puedes confiar en cualquiera).

    OriginalEl autor BrokenGlass

  3. 0

    Cuando nos copiar el contenido de un objeto a otro (SomeClass obj2 = obj1), obj2 también pertenecen a la misma clase, modificando el contenido de obj2 también va a modificar el contenido de obj1. Esto es debido a que son tipos de referencia. Usando Clone() (de una manera adecuada) puede evitar esto. Sobre la modificación de un objeto original , el original no va a conseguir modificado.

    OriginalEl autor Maitri

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea