Fonctionnalités expérimentales dans .NET 9+
À compter de .NET 9, certaines fonctionnalités utilisent les ExperimentalAttribute fonctionnalités pour indiquer que la forme ou la fonctionnalité de l’API est incluse dans la version, mais pas encore officiellement prise en charge. Les fonctionnalités expérimentales permettent à l’équipe .NET de recueillir des commentaires sur la forme et les fonctionnalités d’une API avec l’intention d’affiner l’API et de supprimer l’attribut [Experimental]
dans la prochaine version majeure.
Lorsque votre code fait référence à une API expérimentale, le compilateur génère une erreur avec un ID comme SYSLIB5XXX
. Chaque fonctionnalité marquée comme expérimentale a un ID de diagnostic unique. Pour exprimer le consentement à l’utilisation d’une fonctionnalité expérimentale, vous supprimez le diagnostic spécifique. Vous pouvez le faire via l’un des moyens permettant de supprimer les diagnostics, mais la méthode recommandée consiste à ajouter le diagnostic à la propriété <NoWarn>
du projet. Pour plus d’informations, consultez Supprimer des avertissements.
Étant donné que chaque fonctionnalité expérimentale possède un identifiant distinct, le fait de consentir à l’utilisation d’une fonctionnalité expérimentale ne signifie pas que l’on consente à l’utilisation d’une autre fonctionnalité.
Référence
Le tableau suivant fournit un index aux SYSLIB5XXX
API expérimentales dans .NET 9+.
ID de diagnostic | Version expérimentale | Description |
---|---|---|
SYSLIB5001 | .NET 9 | Tensor<T> et les API associées sont System.Numerics.Tensors expérimentales |
SYSLIB5002 | .NET 9 | SystemColors les couleurs alternatives sont expérimentales |
SYSLIB5003 | .NET 9 | Sve est expérimental |
SYSLIB5004 | .NET 9 | DivRem(UInt32, Int32, Int32) est expérimental, car les performances ne sont pas aussi optimisées que T.DivRem |
SYSLIB5005 | .NET 9 | System.Formats.Nrbf est expérimental |
Supprimer les avertissements
L’utilisation d’une fonctionnalité expérimentale vous donne la possibilité d’envoyer des commentaires sur la forme et la fonctionnalité de l’API avant que la fonctionnalité ne soit marquée comme stable et entièrement prise en charge. Toutefois, l’utilisation de la fonctionnalité génère un avertissement du compilateur. Lorsque vous supprimez l’avertissement, vous reconnaissez que la forme ou la fonctionnalité de l’API peut changer dans la prochaine version majeure. L’API peut même être supprimée. Vous pouvez supprimer l’avertissement via un <NoWarn>
paramètre de projet (recommandé) ou une #pragma
directive dans le code.
Pour supprimer les avertissements dans un fichier projet :
<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>
Pour supprimer les avertissements dans le code :
// 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