Warum unterstützt Array.Copy lange Argumente?

8

Von der MSDN :

  

Parameter sourceArray

     

Das Array, das die Daten enthält   Kopieren. ZielArray

     

Das Array, das die Daten empfängt.   Länge

     

Eine 64-Bit-Ganzzahl, die die   Anzahl der zu kopierenden Elemente. Das   Ganzzahl muss zwischen Null und liegen   Int32.MaxValue, inklusive

Da der erlaubte Wertebereich 0 bis Int32.MaxValue ist, was ist die Motivation für das Hinzufügen dieser Signatur? Es existierte nicht in .Net 1.0 und wurde nur in .Net 1.1 hinzugefügt. Meine einzige Vermutung ist, sich auf 64-Bit-Framework-Implementierungen vorzubereiten.

    
Brian 21.09.2010, 21:42
quelle

1 Antwort

3

Seltsamerweise hat ein Array auch Überladungen für GetItem , die entweder Int32 verwenden und ein Int64. In der Praxis kann jedoch in der aktuellen Implementierung des .NET-Frameworks kein einzelnes Objekt größer als 2 Gigabyte sein, sodass Sie kein Array erstellen können, das solche großen Indizes zulässt.

Ich denke, wenn diese Einschränkung später aufgehoben würde, würde das bedeuten, dass sie die Schnittstelle nicht ändern müssen.

    
Mark Byers 21.09.2010, 21:46
quelle

Tags und Links