Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Som en ny reflektionsfunktion är en funktionspekartyp nu en System.Type instans med nya funktioner som Type.IsFunctionPointer. Tidigare var instansen System.Type som returnerades av typen IntPtr.
Att använda System.Type på det här sättet liknar hur andra typer exponeras, till exempel pekare (Type.IsPointer) och matriser (Type.IsArray).
Den här nya funktionen implementeras för närvarande i CoreCLR-körningen och i MetadataLoadContext. Stöd för Mono- och NativeAOT-runtime-miljöer förväntas senare.
En funktionspekarinstans, som är en fysisk adress till en funktion, fortsätter att representeras som en IntPtr. Endast reflektionstypen har ändrats.
Tidigare beteende
Tidigare returnerade typeof(delegate*<void>())System.IntPtr-typen för en funktionspekartyp. På samma sätt returnerade reflektion även den här typen för en funktionspekartyp, till exempel med FieldInfo.FieldType. Typen IntPtr tillät inte åtkomst till parametertyper, returtyp eller anropskonventioner.
Nytt beteende
              typeof och reflektion använder System.Type för en typ av funktionspekare, vilket ger åtkomst till parametrarnas typer, returtyp och anropskonventioner.
Version lanserad
.NET 8 Preview 2
Typ av brytande ändring
Den här ändringen är en beteendeförändring.
Orsak till ändring
Den här ändringen lägger till funktionen för att hämta metadata för funktionspekare, inklusive parametertyper, returtyp och anropskonventioner. Stöd för funktionspekare lades till med C# 9 och .NET 5, men reflektionsstöd lades inte till vid den tidpunkten.
Rekommenderad åtgärd
Om du vill att koden ska stödja funktionspekare och behandla dem särskilt använder du det nya Type.IsFunctionPointer API:et.