Leggere in inglese

Condividi tramite


RuntimeTypeHandle Struct

Definizione

Rappresenta un tipo tramite un token di metadati interno.

C#
public struct RuntimeTypeHandle
C#
public struct RuntimeTypeHandle : System.Runtime.Serialization.ISerializable
C#
public struct RuntimeTypeHandle : IEquatable<RuntimeTypeHandle>, System.Runtime.Serialization.ISerializable
C#
[System.Serializable]
public struct RuntimeTypeHandle : System.Runtime.Serialization.ISerializable
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct RuntimeTypeHandle : System.Runtime.Serialization.ISerializable
Ereditarietà
RuntimeTypeHandle
Attributi
Implementazioni

Esempio

Nell'esempio seguente viene illustrato come ottenere un RuntimeTypeHandle oggetto da un tipo o da un oggetto e come trasformare nuovamente l'handle in un tipo.

C#
using System;
using System.Reflection;

public class MyClass1
{
    private int x=0;
    public int MyMethod()
    {
        return x;
    }
}

public class MyClass2
{
    public static void Main()
    {
        MyClass1 myClass1 = new MyClass1();

        // Get the RuntimeTypeHandle from an object.
        RuntimeTypeHandle myRTHFromObject = Type.GetTypeHandle(myClass1);
        // Get the RuntimeTypeHandle from a type.
        RuntimeTypeHandle myRTHFromType = typeof(MyClass1).TypeHandle;

        Console.WriteLine("\nmyRTHFromObject.Value:  {0}", myRTHFromObject.Value);
        Console.WriteLine("myRTHFromObject.GetType():  {0}", myRTHFromObject.GetType());
        Console.WriteLine("Get the type back from the handle...");
        Console.WriteLine("Type.GetTypeFromHandle(myRTHFromObject):  {0}",
            Type.GetTypeFromHandle(myRTHFromObject));

        Console.WriteLine("\nmyRTHFromObject.Equals(myRTHFromType):  {0}",
            myRTHFromObject.Equals(myRTHFromType));

        Console.WriteLine("\nmyRTHFromType.Value:  {0}", myRTHFromType.Value);
        Console.WriteLine("myRTHFromType.GetType():  {0}", myRTHFromType.GetType());
        Console.WriteLine("Get the type back from the handle...");
        Console.WriteLine("Type.GetTypeFromHandle(myRTHFromType):  {0}",
            Type.GetTypeFromHandle(myRTHFromType));
    }
}

/* This code example produces output similar to the following:

myRTHFromObject.Value:  799464
myRTHFromObject.GetType():  System.RuntimeTypeHandle
Get the type back from the handle...
Type.GetTypeFromHandle(myRTHFromObject):  MyClass1

myRTHFromObject.Equals(myRTHFromType):  True

myRTHFromType.Value:  799464
myRTHFromType.GetType():  System.RuntimeTypeHandle
Get the type back from the handle...
Type.GetTypeFromHandle(myRTHFromType):  MyClass1
 */

Proprietà

Value

Ottiene un handle per il tipo rappresentato da questa istanza.

Metodi

Equals(Object)

Indica se l'oggetto specificato è uguale alla struttura RuntimeTypeHandle corrente.

Equals(RuntimeTypeHandle)

Indica se la struttura RuntimeTypeHandle specificata è uguale alla struttura RuntimeTypeHandle corrente.

FromIntPtr(IntPtr)

Restituisce un nuovo RuntimeTypeHandle oggetto creato da un handle a runtimeType.

GetHashCode()

Restituisce il codice hash per l'istanza corrente.

GetModuleHandle()

Ottiene un handle per il modulo che contiene il tipo rappresentato dall'istanza corrente.

GetObjectData(SerializationInfo, StreamingContext)

Compila l'oggetto SerializationInfo con i dati necessari per deserializzare il tipo rappresentato dall'istanza corrente.

ToIntPtr(RuntimeTypeHandle)

Restituisce la rappresentazione del puntatore interno di un RuntimeTypeHandle oggetto.

Operatori

Equality(Object, RuntimeTypeHandle)

Indica se un oggetto e una struttura RuntimeTypeHandle sono uguali.

Equality(RuntimeTypeHandle, Object)

Indica se una struttura RuntimeTypeHandle è uguale a un oggetto.

Inequality(Object, RuntimeTypeHandle)

Indica se un oggetto e una struttura RuntimeTypeHandle non sono uguali.

Inequality(RuntimeTypeHandle, Object)

Indica se una struttura RuntimeTypeHandle non è uguale a un oggetto.

Si applica a

Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0