Bagikan melalui


RuntimeHelpers Kelas

Definisi

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 type dan dibeberkan jika dan ketika Type dibongkar.

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.

Berlaku untuk