Was ist ImmutableArray in c #

8

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?

    
Shahrooz Jafari 26.06.2013, 11:22
quelle

3 Antworten

6

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.

    
FabianCook 26.06.2013, 11:27
quelle
7

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:

  • Fadensicherheit
  • Es ist sicher, eine Referenz eines unveränderlichen Objekts außerhalb von a zu übergeben Klasse ohne das Risiko, dass die Daten geändert werden könnten

Nachteile:

  • Speicherbelegung

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 ..

%Vor%

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 () .

    
ridoy 26.06.2013 11:29
quelle
1

Ich möchte Sie über unveränderbare Sammlungen informieren, aber es ist besser, wenn Sie hier detailliertere Informationen lesen: Ссылка

    
arifnpm 26.06.2013 11:27
quelle

Tags und Links