RuntimeHelpers Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menyediakan sekumpulan metode dan properti statis yang menyediakan dukungan untuk pengkompilasi. Kelas ini tidak dapat diwariskan.
public ref class RuntimeHelpers abstract sealed
public ref class RuntimeHelpers sealed
public static class RuntimeHelpers
[System.Serializable]
public sealed class RuntimeHelpers
type RuntimeHelpers = class
[<System.Serializable>]
type RuntimeHelpers = class
Public Class RuntimeHelpers
Public NotInheritable Class RuntimeHelpers
- Warisan
-
RuntimeHelpers
- Atribut
Contoh
Contoh berikut menunjukkan cara mengatur handel dengan andal dengan menggunakan metode PrepareConstrainedRegions. Untuk mengatur handel dengan andal ke handel yang sudah ada sebelumnya, Anda harus memastikan bahwa alokasi handel asli dan rekaman berikutnya dari handel tersebut dalam objek SafeHandle adalah atomik. Setiap kegagalan antara operasi ini (seperti pengecualian pembatalan utas atau kehabisan memori) akan mengakibatkan handel asli bocor. Anda dapat menggunakan metode PrepareConstrainedRegions untuk memastikan bahwa handel tidak bocor.
[StructLayout(LayoutKind.Sequential)]
struct MyStruct
{
public IntPtr m_outputHandle;
}
sealed class MySafeHandle : SafeHandle
{
// Called by P/Invoke when returning SafeHandles
public MySafeHandle()
: base(IntPtr.Zero, true)
{
}
public MySafeHandle AllocateHandle()
{
// Allocate SafeHandle first to avoid failure later.
MySafeHandle sh = new MySafeHandle();
RuntimeHelpers.PrepareConstrainedRegions();
try { }
finally
{
MyStruct myStruct = new MyStruct();
NativeAllocateHandle(ref myStruct);
sh.SetHandle(myStruct.m_outputHandle);
}
return sh;
}
<StructLayout(LayoutKind.Sequential)> _
Structure MyStruct
Public m_outputHandle As IntPtr
End Structure 'MyStruct
NotInheritable Class MySafeHandle
Inherits SafeHandle
' Called by P/Invoke when returning SafeHandles
Public Sub New()
MyBase.New(IntPtr.Zero, True)
End Sub
Public Function AllocateHandle() As MySafeHandle
' Allocate SafeHandle first to avoid failure later.
Dim sh As New MySafeHandle()
RuntimeHelpers.PrepareConstrainedRegions()
Try
Finally
Dim myStruct As New MyStruct()
NativeAllocateHandle(myStruct)
sh.SetHandle(myStruct.m_outputHandle)
End Try
Return sh
End Function
Properti
OffsetToStringData |
Kedaluwarsa.
Kedaluwarsa.
Mendapatkan offset, dalam byte, ke data dalam string yang diberikan. |
Metode
AllocateTypeAssociatedMemory(Type, Int32) |
Mengalokasikan memori yang terkait dengan |
Box(Byte, RuntimeTypeHandle) |
Membuat objek berkotak dari jenis yang ditentukan dari data yang terletak di referensi target. |
CreateSpan<T>(RuntimeFieldHandle) |
Menyediakan cara cepat untuk mengakses data konstan yang disimpan dalam modul sebagai ReadOnlySpan<T>. |
EnsureSufficientExecutionStack() |
Memastikan bahwa ruang tumpukan yang tersisa cukup besar untuk menjalankan fungsi .NET rata-rata. |
Equals(Object, Object) |
Menentukan apakah instans Object yang ditentukan dianggap sama. |
ExecuteCodeWithGuaranteedCleanup(RuntimeHelpers+TryCode, RuntimeHelpers+CleanupCode, Object) |
Kedaluwarsa.
Menjalankan kode menggunakan Delegate saat menggunakan Delegate lain untuk menjalankan kode tambahan jika terjadi pengecualian. |
GetHashCode(Object) |
Berfungsi sebagai fungsi hash untuk objek tertentu, dan cocok untuk digunakan dalam algoritma dan struktur data yang menggunakan kode hash, seperti tabel hash. |
GetObjectValue(Object) |
Kotak jenis nilai. |
GetSubArray<T>(T[], Range) |
Iris array yang ditentukan menggunakan rentang yang ditentukan. |
GetUninitializedObject(Type) |
Mengembalikan instans yang tidak diinisialisasi dari jenis yang disediakan sistem. |
InitializeArray(Array, RuntimeFieldHandle) |
Menyediakan cara cepat untuk menginisialisasi array dari data yang disimpan dalam modul. |
IsReferenceOrContainsReferences<T>() |
Mengembalikan nilai yang menunjukkan apakah jenis yang ditentukan adalah jenis referensi atau jenis nilai yang berisi referensi atau by-refs. |
PrepareConstrainedRegions() |
Kedaluwarsa.
Menunjuk isi kode sebagai wilayah eksekusi yang dibatasi (CER). |
PrepareConstrainedRegionsNoOP() |
Kedaluwarsa.
Menunjuk isi kode sebagai wilayah eksekusi yang dibatasi (CER) tanpa melakukan pemeriksaan apa pun. |
PrepareContractedDelegate(Delegate) |
Kedaluwarsa.
Menyediakan cara bagi aplikasi untuk menyiapkan delegasi peristiwa AppDomain secara dinamis. |
PrepareDelegate(Delegate) |
Menunjukkan bahwa delegasi yang ditentukan harus disiapkan untuk dimasukkan di wilayah eksekusi yang dibatasi (CER). |
PrepareMethod(RuntimeMethodHandle) |
Menyiapkan metode untuk penyertaan di wilayah eksekusi yang dibatasi (CER). |
PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) |
Menyiapkan metode untuk penyertaan di wilayah eksekusi yang dibatasi (CER) dengan instansiasi yang ditentukan. |
ProbeForSufficientStack() |
Kedaluwarsa.
Pemeriksaan untuk sejumlah ruang tumpukan tertentu untuk memastikan bahwa luapan tumpukan tidak dapat terjadi dalam blok kode berikutnya (dengan asumsi bahwa kode Anda hanya menggunakan jumlah ruang tumpukan yang terbatas dan sedang). Kami menyarankan agar Anda menggunakan wilayah eksekusi yang dibatasi (CER) alih-alih metode ini. |
RunClassConstructor(RuntimeTypeHandle) |
Memastikan bahwa penginisialisasi jenis (juga dikenal sebagai konstruktor statis) untuk jenis yang ditentukan telah dijalankan. |
RunModuleConstructor(ModuleHandle) |
Memastikan metode konstruktor modul tertentu telah berjalan pada saat metode ini kembali. |
SizeOf(RuntimeTypeHandle) |
Mendapatkan ukuran objek dari jenis yang diberikan. |
TryEnsureSufficientExecutionStack() |
Mencoba memastikan ada tumpukan yang memadai untuk menjalankan fungsi .NET rata-rata. |