Ich bin sicher, das ist eine einfache Frage, aber ich habe keine Antwort für. Hier ist das Senario und die Frage.Wie bekomme ich die Länge eines TypeCode
Ich habe ein Array, das in einem bestimmten Format gespeichert wurde. Das Format enthält einen Header-Datensatz mit nachfolgenden Detailsätzen. Der Header des Datensatzes sagt mir, welcher TypeCode zum Speichern der Daten verwendet wurde, zum Beispiel Int32.
Ich habe eine Routine, die ein byte [] -Array nimmt und konvertiert die Byte-Daten zurück in das richtige Format in C#. Diese Routine benötigt die richtige Anzahl von Bytes, um die Konvertierung erfolgreich durchzuführen.
Frage: Also, wie kann ich die Länge von Bytes aus dem angegebenen TypeCode für die Übergabe an die Convert-Funktion erhalten, ohne die Länge für jeden Typ fest codieren zu müssen?
Ich muss die Frage missverstanden haben. :) Für diese Implementierung scheint es, als könnten Sie ein Modell wie BSTR verwenden, bei dem die ersten vier Bytes des Arrays die Länge des Typs oder eine solche Konvention darstellen. –
Natürlich, genau wie der Schalter, bricht dies, wenn ein neuer Typ eingeführt wird. –
Die Einführung eines neuen Mitglieds in eine Enum ist * immer * eine brechende Änderung. Ich erwarte nicht, dass sich das TypeCode Enum in absehbarer Zeit ändert ... Microsoft wird wahrscheinlich nicht den Code jedes Entwicklers brechen wollen, der es einschaltet. –