Marshal.SizeOf Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir sınıfın yönetilmeyen boyutunu bayt cinsinden döndürür.
Aşırı Yüklemeler
SizeOf(Object) |
Geçersiz.
Bir nesnenin yönetilmeyen boyutunu bayt cinsinden döndürür. |
SizeOf(Type) |
Geçersiz.
Yönetilmeyen bir türün boyutunu bayt cinsinden döndürür. |
SizeOf<T>() |
Yönetilmeyen bir türün boyutunu bayt cinsinden döndürür. |
SizeOf<T>(T) |
Belirtilen türde bir nesnenin yönetilmeyen boyutunu bayt cinsinden döndürür. |
SizeOf(Object)
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
Dikkat
SizeOf(Object) may be unavailable in future releases. Instead, use SizeOf<T>(). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296514
Bir nesnenin yönetilmeyen boyutunu bayt cinsinden döndürür.
public:
static int SizeOf(System::Object ^ structure);
[System.Obsolete("SizeOf(Object) may be unavailable in future releases. Instead, use SizeOf<T>(). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296514")]
public static int SizeOf (object structure);
public static int SizeOf (object structure);
[System.Runtime.InteropServices.ComVisible(true)]
public static int SizeOf (object structure);
[<System.Obsolete("SizeOf(Object) may be unavailable in future releases. Instead, use SizeOf<T>(). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296514")>]
static member SizeOf : obj -> int
static member SizeOf : obj -> int
[<System.Runtime.InteropServices.ComVisible(true)>]
static member SizeOf : obj -> int
Public Shared Function SizeOf (structure As Object) As Integer
Parametreler
- structure
- Object
Boyutu döndürülecek nesne.
Döndürülenler
Belirtilen nesnenin yönetilmeyen koddaki boyutu.
- Öznitelikler
Özel durumlar
structure
parametresidirnull
.
Örnekler
Aşağıdaki örnek yönetilen bir yapı oluşturur, yönetilmeyen belleğe aktarır ve ardından yönetilen belleğe geri aktarır. Bu örnekte, ayrılacak yönetilmeyen bellek miktarını belirlemek için yöntemi kullanılır SizeOf .
using System;
using System.Runtime.InteropServices;
public struct Point
{
public int x;
public int y;
}
class Example
{
static void Main()
{
// Create a point struct.
Point p;
p.x = 1;
p.y = 1;
Console.WriteLine("The value of first point is " + p.x + " and " + p.y + ".");
// Initialize unmanged memory to hold the struct.
IntPtr pnt = Marshal.AllocHGlobal(Marshal.SizeOf(p));
try
{
// Copy the struct to unmanaged memory.
Marshal.StructureToPtr(p, pnt, false);
// Create another point.
Point anotherP;
// Set this Point to the value of the
// Point in unmanaged memory.
anotherP = (Point)Marshal.PtrToStructure(pnt, typeof(Point));
Console.WriteLine("The value of new point is " + anotherP.x + " and " + anotherP.y + ".");
}
finally
{
// Free the unmanaged memory.
Marshal.FreeHGlobal(pnt);
}
}
}
Imports System.Runtime.InteropServices
Public Structure Point
Public x As Integer
Public y As Integer
End Structure
Module Example
Sub Main()
' Create a point struct.
Dim p As Point
p.x = 1
p.y = 1
Console.WriteLine("The value of first point is " + p.x.ToString + " and " + p.y.ToString + ".")
' Initialize unmanged memory to hold the struct.
Dim pnt As IntPtr = Marshal.AllocHGlobal(Marshal.SizeOf(p))
Try
' Copy the struct to unmanaged memory.
Marshal.StructureToPtr(p, pnt, False)
' Create another point.
Dim anotherP As Point
' Set this Point to the value of the
' Point in unmanaged memory.
anotherP = CType(Marshal.PtrToStructure(pnt, GetType(Point)), Point)
Console.WriteLine("The value of new point is " + anotherP.x.ToString + " and " + anotherP.y.ToString + ".")
Finally
' Free the unmanaged memory.
Marshal.FreeHGlobal(pnt)
End Try
End Sub
End Module
Açıklamalar
Bu yöntem, başvuru türü veya kutulu değer türü olabilecek bir yapı örneğini kabul eder. Düzen sıralı veya açık olmalıdır.
Döndürülen boyut, yönetilmeyen nesnenin boyutudur. Bir nesnenin yönetilmeyen ve yönetilen boyutları farklılık gösterebilir. Karakter türleri için boyut, o sınıfa CharSet uygulanan değerden etkilenir.
ve AllocCoTaskMem yöntemlerini kullanarak AllocHGlobal ne kadar yönetilmeyen bellek ayrılabileceğini belirlemek için yöntemini kullanabilirsinizSizeOf.
Ayrıca bkz.
Şunlara uygulanır
SizeOf(Type)
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
Dikkat
SizeOf(Type) may be unavailable in future releases. Instead, use SizeOf<T>(). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296515
Yönetilmeyen bir türün boyutunu bayt cinsinden döndürür.
public:
static int SizeOf(Type ^ t);
[System.Obsolete("SizeOf(Type) may be unavailable in future releases. Instead, use SizeOf<T>(). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296515")]
public static int SizeOf (Type t);
public static int SizeOf (Type t);
[<System.Obsolete("SizeOf(Type) may be unavailable in future releases. Instead, use SizeOf<T>(). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296515")>]
static member SizeOf : Type -> int
static member SizeOf : Type -> int
Public Shared Function SizeOf (t As Type) As Integer
Parametreler
- t
- Type
Boyutu döndürülecek tür.
Döndürülenler
Yönetilmeyen kodda belirtilen türün boyutu.
- Öznitelikler
Özel durumlar
t
parametresi genel bir tür tanımıdır.
t
parametresidirnull
.
Örnekler
Aşağıdaki örnekte yönteminin çağrılması gösterilmektedir SizeOf . Bu kod örneği, sınıfı için Marshal sağlanan daha büyük bir örneğin parçasıdır.
// 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));
// 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))
Açıklamalar
Bir yapınız olmadığında bu yöntemi kullanabilirsiniz. Düzen sıralı veya açık olmalıdır.
Döndürülen boyut, yönetilmeyen türün boyutudur. Bir nesnenin yönetilmeyen ve yönetilen boyutları farklılık gösterebilir. Karakter türleri için boyut, o sınıfa CharSet uygulanan değerden etkilenir.
Ayrıca bkz.
Şunlara uygulanır
SizeOf<T>()
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
Yönetilmeyen bir türün boyutunu bayt cinsinden döndürür.
public:
generic <typename T>
static int SizeOf();
public static int SizeOf<T> ();
static member SizeOf : unit -> int
Public Shared Function SizeOf(Of T) () As Integer
Tür Parametreleri
- T
Boyutu döndürülecek tür.
Döndürülenler
Genel tür parametresi tarafından T
belirtilen türün bayt cinsinden boyutu.
Açıklamalar
Bir yapınız olmadığında bu yöntemi kullanabilirsiniz. Düzen sıralı veya açık olmalıdır.
Döndürülen boyut, yönetilmeyen türün boyutudur. Bir nesnenin yönetilmeyen ve yönetilen boyutları farklılık gösterebilir. Karakter türleri için boyut, o sınıfa CharSet uygulanan değerden etkilenir.
Şunlara uygulanır
SizeOf<T>(T)
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
Belirtilen türde bir nesnenin yönetilmeyen boyutunu bayt cinsinden döndürür.
public:
generic <typename T>
static int SizeOf(T structure);
public static int SizeOf<T> (T structure);
static member SizeOf : 'T -> int
Public Shared Function SizeOf(Of T) (structure As T) As Integer
Tür Parametreleri
- T
structure
parametresinin türü.
Parametreler
- structure
- T
Boyutu döndürülecek nesne.
Döndürülenler
Yönetilmeyen kodda belirtilen nesnenin bayt cinsinden boyutu.
Özel durumlar
structure
parametresidirnull
.
Açıklamalar
Bu yöntem, başvuru türü veya kutulu değer türü olabilecek bir yapı örneğini kabul eder. Düzen sıralı veya açık olmalıdır.
Döndürülen boyut, yönetilmeyen nesnenin boyutudur. Bir nesnenin yönetilmeyen ve yönetilen boyutları farklılık gösterebilir. Karakter türleri için boyut, o sınıfa CharSet uygulanan değerden etkilenir.
ve AllocCoTaskMem yöntemlerini kullanarak AllocHGlobal ne kadar yönetilmeyen bellek ayrılabileceğini belirlemek için yöntemini kullanabilirsinizSizeOf<T>(T).