Compartilhar via


Método Marshal.SizeOf (Type)

 

Dica

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Retorna o tamanho de um tipo não gerenciado em bytes.

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (em mscorlib.dll)

Sintaxe

public static int SizeOf(
    Type t
)
public:
static int SizeOf(
    Type^ t
)
static member SizeOf : 
        t:Type -> int
Public Shared Function SizeOf (
    t As Type
) As Integer

Parâmetros

  • t
    Type: System.Type

    O tipo cujo tamanho deve ser retornado.

Valor Retornado

Type: System.Int32

O tamanho do tipo especificado no código não gerenciado.

Exceções

Exception Condition
ArgumentException

O parâmetro t é um tipo genérico.

ArgumentNullException

O parâmetro t é null.

Comentários

Você pode usar esse método quando você não tem uma estrutura. O layout deve ser explícita ou sequencial.

O tamanho retornado é o tamanho do tipo não gerenciado. Os tamanhos gerenciados e não de um objeto podem ser diferente. Para tipos de caractere, o tamanho é afetado pelo CharSet valor aplicado à classe.

Exemplos

O exemplo a seguir demonstra a chamar o SizeOf método. Este exemplo de código é parte de um exemplo maior fornecido para a Marshal classe.

// Demonstrate the use of the SizeOf method of the Marshal class.
Console.WriteLine("Number of bytes needed by a Point object: {0}", 
    Marshal.SizeOf(typeof(Point)));
Point p = new Point();
Console.WriteLine("Number of bytes needed by a Point object: {0}",
    Marshal.SizeOf(p));
' Demonstrate the use of the SizeOf method of the Marshal class.
Console.WriteLine("Number of bytes needed by a Point object: {0}", Marshal.SizeOf(GetType(Point)))
Dim p As New Point()
Console.WriteLine("Number of bytes needed by a Point object: {0}", Marshal.SizeOf(p))
// Demonstrate the use of the SizeOf method of the Marshal
// class.
Console::WriteLine("Number of bytes needed by a Point object: {0}",
    Marshal::SizeOf(Point::typeid));
Point point;
Console::WriteLine("Number of bytes needed by a Point object: {0}",
    Marshal::SizeOf(point));

Informações de Versão

Plataforma Universal do Windows
Disponível desde 8
.NET Framework
Disponível desde 1.1
Biblioteca de Classes Portátil
Com suporte no: plataformas portáteis do .NET
Silverlight
Disponível desde 2.0
Windows Phone Silverlight
Disponível desde 7.0
Windows Phone
Disponível desde 8.1

Confira Também

CharSet
SizeOf Sobrecarga
Classe Marshal
Namespace System.Runtime.InteropServices

Retornar ao início