Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
MSDN Library

Marshal.SizeOf<T> Method (T)

[Supported in the .NET Framework 4.5.1 and later versions]

Returns the unmanaged size of an object of a specified type in bytes.

Namespace:  System.Runtime.InteropServices
Assemblies:   System.Runtime.InteropServices (in System.Runtime.InteropServices.dll)
  mscorlib (in mscorlib.dll)

public static int SizeOf<T>(
	T structure

Type Parameters


The type of the structure parameter.


Type: T

The object whose size is to be returned.

Return Value

Type: System.Int32
The size, in bytes, of the specified object in unmanaged code.


The structure parameter is null.

This method accepts an instance of a structure, which can be a reference type or a boxed value type. The layout must be sequential or explicit.

The size returned is the size of the unmanaged object. The unmanaged and managed sizes of an object can differ. For character types, the size is affected by the CharSet value applied to that class.

You can use the SizeOf<T>(T) method to determine how much unmanaged memory to allocate by using the AllocHGlobal and AllocCoTaskMem methods.

.NET Framework

Supported in: 4.6, 4.5.1

.NET for Windows Phone apps

Supported in: Windows Phone 8.1
© 2015 Microsoft