目次:
定義-Sizeof演算子の意味は?
C#のSizeof演算子は、参照型ではないアンマネージ型のサイズ(バイト単位)を決定するために使用される演算子です。
動的なメモリ割り当てを伴うアプリケーションの開発中、型に割り当てられたメモリを見つけることは非常に一般的です。 型のサイズを想定して、アプリケーションでハードコーディングされた値を使用することは非常に安全ではありません。異なるシステムに移植すると、アプリケーションが破損する可能性があります。 このような場合、sizeof演算子を使用して、構造体などの複合データ型のサイズを見つけます。 ただし、.NETフレームワークの仮想化されたタイプレイアウトシステムにより、参照タイプではなく、値タイプのバイトサイズの計算にのみ使用できます。
sizeof演算子は、マネージアプリケーションから相互運用やカスタムシリアル化などのアンマネージコードに渡されるデータ構造のメモリ割り当てに役立ちます。ポインターのタイプが占めるバイト数に等しい値によるポインター変数内。 sizeof演算子は、コードの可読性の向上に役立ちます。
TechopediaがSizeofオペレーターを説明
sizeof演算子は、単一のパラメーターを受け取る単項演算子であり、キーワード "sizeof"と共に使用されます。 C ++とは対照的に、sizeof演算子はコンパイル時の構成要素であるため、パラメーターは変数ではなく、コンパイル時に既知の閉じた型である必要があります。 パラメーターは、フィールドまたは参照型プロパティのない列挙型、ポインター、またはユーザー定義の構造体にすることもできます。 特定の定義済みの型では、sizeof演算子は定数値を返しますが、残りの型で使用すると、実装に基づいた値になります。
たとえば、sizeof演算子がパラメーターとして整数(int)で実行されると、整数型の変数が4バイトのメモリを占有することを示すために常に数値4を返します。
sizeof演算子がstruct型のオペランドに適用されると、構造体が占有する合計バイト数がフェッチされます。これには、内部的にアライメントに使用されるパディングバイトが含まれます。 structでsizeof演算子を使用する際に従うべきガイドラインは次のとおりです。- 安全でないブロック内で呼び出す必要があります
- 構造体変数には、参照型のメンバーを含めることはできません
- 構造体はジェネリック値型であってはなりません