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