sizeof (C# リファレンス)
更新 : 2007 年 11 月
値型 (C# リファレンス)のサイズ (バイト単位) を取得します。たとえば、int 型のサイズを次のように取得できます。
int intSize = sizeof(int);
解説
sizeof 演算子を適用できるのは値型だけです。参照型には適用できません。
メモ : |
---|
C# バージョン 2.0 以降、プリミティブ型に sizeof を適用する場合に、unsafe モードを使用する必要はありません。 |
sizeof 演算子はオーバーロードできません。sizeof 演算子により返される値の型は int です。次の表に、プリミティブ型のサイズを表す定数値の一覧を示します。
式 |
結果 |
sizeof(sbyte) |
1 |
sizeof(byte) |
1 |
sizeof(short) |
2 |
sizeof(ushort) |
2 |
sizeof(int) |
4 |
sizeof(uint) |
4 |
sizeof(long) |
8 |
sizeof(ulong) |
8 |
sizeof(char) |
2 (Unicode) |
sizeof(float) |
4 |
sizeof(double) |
8 |
sizeof(bool) |
1 |
struct などその他のすべての型については、sizeof 演算子はアンセーフ コード ブロックでのみ使用できます。Marshal.SizeOf メソッドを使用できますが、このメソッドで返される値が、sizeof メソッドで返される値と同じでないことがあります。Marshal.SizeOf は値のマーシャリング後にサイズを返します。一方、sizeof は、共通言語ランタイムによる割り当ての後に埋め込みを含めたサイズを返します。
使用例
class MainClass
{
// unsafe not required for primitive types
static void Main()
{
Console.WriteLine("The size of short is {0}.", sizeof(short));
Console.WriteLine("The size of int is {0}.", sizeof(int));
Console.WriteLine("The size of long is {0}.", sizeof(long));
}
}
/*
Output:
The size of short is 2.
The size of int is 4.
The size of long is 8.
*/
C# 言語仕様
詳細については、「C# 言語仕様」の次のセクションを参照してください。
- 18.5.8 sizeof 演算子