これは簡単な質問ですが、答えはありません。ここにシナリオと質問があります。TypeCodeの長さを取得する方法
特定の形式で格納された配列があります。フォーマットには、それに続く複数の詳細レコードを含むヘッダーレコードが含まれます。レコードのヘッダーには、データを格納するために使用されたTypeCode(たとえばInt32)が表示されます。
私は、バイト[]配列を取り、バイトデータをC#で正しい形式に変換するルーチンを持っています。このルーチンでは、変換を成功させるために適切なバイト数が必要です。
Q.どのようにすべての型の長さをハードコードすることなく変換関数に渡すために、指定されたTypeCodeからバイトの長さを取得できますか?
私は質問を誤解しているに違いありません。 :)この実装では、配列の最初の4バイトが型の長さを表すBSTRのようなモデルを使用するか、そのようなコンベンションを使用できるようです。 –
もちろん、スイッチと同じように、新しいタイプが導入された場合、これは壊れます。 –
新しいメンバを列挙型に導入することは、常に*変更を行うことです。私はTypeCode列挙型がいつでもすぐに変更されるとは思わない...マイクロソフトは、切り替えているすべての開発者のコードを壊したくないと思われる。 –