Experimentella funktioner i .NET 9+
Från och med .NET 9 använder ExperimentalAttribute vissa funktioner för att indikera att API-formen eller funktionerna ingår i versionen men ännu inte stöds officiellt. Med experimentella funktioner kan .NET-teamet samla in feedback om ett API:s form och funktioner med avsikten att förfina API:et och ta bort [Experimental]
attributet i nästa större version.
När koden refererar till ett experimentellt API skapar kompilatorn ett fel med ett ID som SYSLIB5XXX
. Varje funktion som är markerad som experimentell har ett unikt diagnostik-ID. För att uttrycka sitt medgivande till att använda en experimentell funktion undertrycker du den specifika diagnostiken. Du kan göra det via något av sätten att förhindra diagnostik, men det rekommenderade sättet är att lägga till diagnostiken i projektets <NoWarn>
egenskap. Mer information finns i Utelämna varningar.
Eftersom varje experimentell funktion har ett separat ID samtycker samtycke till att använda en experimentell funktion inte att använda en annan.
Referens
Följande tabell innehåller ett index för de SYSLIB5XXX
experimentella API:erna i .NET 9+.
Diagnostik-ID | Experimentell version | beskrivning |
---|---|---|
SYSLIB5001 | .NET 9 | Tensor<T> relaterade API:er i System.Numerics.Tensors är experimentella |
SYSLIB5002 | .NET 9 | SystemColors alternativa färger är experimentella |
SYSLIB5003 | .NET 9 | Sve är experimentell |
SYSLIB5004 | .NET 9 |
DivRem(UInt32, Int32, Int32) är experimentell eftersom prestandan inte är lika optimerad som T.DivRem |
SYSLIB5005 | .NET 9 | System.Formats.Nrbf är experimentell |
Ignorera varningar
Med hjälp av en experimentell funktion kan du skicka feedback om API-formen och -funktionerna innan funktionen markeras som stabil och stöds fullt ut. Men om du använder funktionen genereras en varning från kompilatorn. När du undertrycker varningen bekräftar du att API-formen eller funktionerna kan ändras i nästa större version. API:et kan till och med tas bort. Du kan ignorera varningen via en <NoWarn>
projektinställning (rekommenderas) eller ett #pragma
direktiv i kod.
Så här utelämnar du varningarna i en projektfil:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<!-- NoWarn below suppresses SYSLIB5001 project-wide -->
<NoWarn>$(NoWarn);SYSLIB5001</NoWarn>
<!-- To suppress multiple warnings, you can use multiple NoWarn elements -->
<NoWarn>$(NoWarn);SYSLIB5002</NoWarn>
<NoWarn>$(NoWarn);SYSLIB5003</NoWarn>
<!-- Alternatively, you can suppress multiple warnings by using a semicolon-delimited list -->
<NoWarn>$(NoWarn);SYSLIB5001;SYSLIB5002;SYSLIB5003</NoWarn>
</PropertyGroup>
</Project>
Så här utelämnar du varningarna i koden:
// Disable the warning.
#pragma warning disable SYSLIB5001
// Code that uses an experimental API that produces the diagnostic SYSLIB5001
//...
// Re-enable the warning.
#pragma warning restore SYSLIB5001