Ich sehe das :
Dieses Paket enthält Sammlungen, die Thread-sicher und garantiert sind niemals ihren Inhalt ändern, auch bekannt als unveränderliche Sammlungen.
Aber ich verstehe nicht, was genau ist und wann wir ImmutableArray verwenden sollten?
Ein unveränderliches Array wäre ein readonly
-Objekt im Gegensatz zu etwas wie einem ExpandoObject
Dies bedeutet, dass die Werte nach der Definition nicht geändert werden können (es sei denn, Sie definieren sie erneut)
Zum Beispiel:
%Vor% Wird immer die vom veränderbaren Array new byte[] { 0, 1, 2, 3 }
angegebenen Werte haben, es sei denn, es ist erneut definiert.
Unveränderliches Objekt kann als ein Objekt definiert werden, dessen Status nach der Erstellung nicht geändert werden kann. Das am häufigsten verwendete unveränderbare Objekt ist sicherlich das Objekt String .Immbare Objekte sind nützlich, wenn Thread-Sicherheit von Bedeutung ist und / oder wenn auf eine Instanz eines Objekts außerhalb des Codes im Modus readonly zugegriffen werden muss.
Vorteile:
Nachteile:
Verwendung:
%Vor%Unveränderbares Array kann auch aus einem veränderbaren Array wie .. erstellt werden.
%Vor%Wir können das unveränderbare Array aus einem anderen unveränderlichen Array erstellen.
%Vor% In diesem Fall verbraucht array3 keinen weiteren Speicher.
ImmutableArray unterstützt Enumeration . Verwenden Sie wie ..
Und kann ICloneable Schnittstelle implementieren.
%Vor%ImmutableArray überschreibt auch und implementiert Equals () und '==' und '! =' Operatoren.
%Vor%Bisher können Sie die obige Codezeile im Fall von array1! = array2 genauso verwenden wie ! Gleich () .
Tags und Links c# immutablearray