kann ich erraten, was es tut
Du hast recht, es ist die gleiche wie new byte[] { a, b }
ist
ich keine Erklärung finden, warum die Typdefinition byte[]
verzichtet werden kann
Der Grund, warum es weggelassen werden kann, ist, dass sowohl a
und b
sind vom Typ byte
. Der Compiler ist intelligent genug, um herauszufinden, dass Sie ein Array von byte
s erstellen wollten, so dass Sie nicht aufgefordert werden, den Typ explizit anzugeben.
Microsoft erklärt diese Abkürzung here. Die Idee ist ähnlich dem Verzicht auf den Typ in Deklarationen, die var
verwenden, wenn der tatsächliche Typ aus dem Initialisierungskontext abgeleitet werden kann.
Es schafft eine 'MemoryStream' Instanz, die zwei Bytes enthält:' a' und 'b' –
Die Art der Anordnung kann aus den Argumenten, die die beiden Bytes sind, abgeleitet werden, so dass die Array ist ein 'Byte []'. Dies ist ein [implizit typisiertes Array] (https://msdn.microsoft.com/en-us/library/bb384090.aspx) –
http://stackoverflow.com/questions/5678216/all-possible-c-sharp- Array-Initialisierungs-Syntaxen –