Sto studiando la classe Array
in C #. Quanto segue è l'implementazione della classe System.Array
:
[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class Array : ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable
Ho due domande a riguardo:
-
Ho letto che
System.Array
è derivata daSystem.Object
. Ma perché questo non è visto nella definizione sopra? -
ICloneable è implementato per consentire alla matrice di essere sottoposta a una copia profonda in caso di serializzazione XML. ICloneable fornisce solo un metodo: Clone (). Qual è il vantaggio di implementare esplicitamente ICloneable? Perché il metodo Clone () non può essere implementato direttamente? È questo un tipo di fornire un pattern di Interfaccia di Marcatura dove una particolare Interfaccia è implementata solo per trasmettere una certa caratteristica della classe?