Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

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

T

The type of the structure parameter.

Parameters

structure
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.

ExceptionCondition
ArgumentNullException

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

Supported in: Windows Phone 8.1
Show:
© 2015 Microsoft