RuntimeHelpers クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コンパイラをサポートする静的メソッドとプロパティのセットを提供します。 このクラスは継承できません。
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
- 継承
-
RuntimeHelpers
- 属性
例
次の例は、PrepareConstrainedRegions メソッドを使用してハンドルを確実に設定する方法を示しています。 指定した既存のハンドルにハンドルを確実に設定するには、ネイティブ ハンドルの割り当てと、SafeHandle オブジェクト内でのそのハンドルの後続の記録がアトミックであることを確認する必要があります。 これらの操作 (スレッドの中止やメモリ不足の例外など) の間でエラーが発生すると、ネイティブ ハンドルがリークされます。 PrepareConstrainedRegions メソッドを使用して、ハンドルがリークしないようにすることができます。
[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
プロパティ
OffsetToStringData |
古い.
古い.
指定された文字列内のデータへのオフセット (バイト単位) を取得します。 |
メソッド
AllocateTypeAssociatedMemory(Type, Int32) |
|
Box(Byte, RuntimeTypeHandle) |
ターゲット参照にあるデータから、指定した型のボックス化されたオブジェクトを作成します。 |
CreateSpan<T>(RuntimeFieldHandle) |
ReadOnlySpan<T>としてモジュールに格納されている定数データにすばやくアクセスする方法を提供します。 |
EnsureSufficientExecutionStack() |
残りのスタック領域が、平均 .NET 関数を実行するのに十分な大きさであることを確認します。 |
Equals(Object, Object) |
指定した Object インスタンスが等しいと見なされるかどうかを判断します。 |
ExecuteCodeWithGuaranteedCleanup(RuntimeHelpers+TryCode, RuntimeHelpers+CleanupCode, Object) |
古い.
別の Delegate を使用して例外が発生した場合に追加のコードを実行するときに、Delegate を使用してコードを実行します。 |
GetHashCode(Object) |
特定のオブジェクトのハッシュ関数として機能し、ハッシュ テーブルなどのハッシュ コードを使用するアルゴリズムやデータ構造での使用に適しています。 |
GetObjectValue(Object) |
値型をボックスにします。 |
GetSubArray<T>(T[], Range) |
指定した範囲を使用して、指定した配列をスライスします。 |
GetUninitializedObject(Type) |
システム指定型の初期化されていないインスタンスを返します。 |
InitializeArray(Array, RuntimeFieldHandle) |
モジュールに格納されているデータから配列を迅速に初期化する方法を提供します。 |
IsReferenceOrContainsReferences<T>() |
指定した型が参照型か、参照または参照を含む値型かを示す値を返します。 |
PrepareConstrainedRegions() |
古い.
コードの本文を制約付き実行領域 (CER) として指定します。 |
PrepareConstrainedRegionsNoOP() |
古い.
プローブを実行せずに、コード本体を制約付き実行領域 (CER) として指定します。 |
PrepareContractedDelegate(Delegate) |
古い.
アプリケーションが AppDomain イベント デリゲートを動的に準備する方法を提供します。 |
PrepareDelegate(Delegate) |
指定したデリゲートを、制約付き実行領域 (CER) に含めるために準備する必要があることを示します。 |
PrepareMethod(RuntimeMethodHandle) |
制約付き実行領域 (CER) に含めるメソッドを準備します。 |
PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) |
指定したインスタンス化を使用して、制約付き実行領域 (CER) に含めるメソッドを準備します。 |
ProbeForSufficientStack() |
古い.
後続のコード ブロック内でスタック オーバーフローが発生しないように、一定のスタック領域をプローブします (コードで使用されるのは有限で中程度のスタック領域であると仮定)。 このメソッドの代わりに、制約付き実行リージョン (CER) を使用することをお勧めします。 |
RunClassConstructor(RuntimeTypeHandle) |
指定した型の型初期化子 (静的コンストラクターとも呼ばれます) が実行されていることを確認します。 |
RunModuleConstructor(ModuleHandle) |
指定したモジュール コンストラクター メソッドが、このメソッドが返す時点までに実行されていることを確認します。 |
SizeOf(RuntimeTypeHandle) |
指定した型のオブジェクトのサイズを取得します。 |
TryEnsureSufficientExecutionStack() |
平均 .NET 関数を実行するのに十分なスタックがあることを確認します。 |
適用対象
.NET