Delen via


Experimentele functies in .NET 9+

Vanaf .NET 9 maken sommige functies gebruik van de ExperimentalAttribute functie om aan te geven dat de API-shape of -functionaliteit is opgenomen in de release, maar nog niet officieel wordt ondersteund. Met experimentele functies kan het .NET-team feedback verzamelen over de vorm en functionaliteit van een API met de bedoeling de API te verfijnen en het [Experimental] kenmerk in de volgende primaire release te verwijderen.

Wanneer uw code verwijst naar een experimentele API, produceert de compiler een fout met een id zoals SYSLIB5XXX. Elke functie die als experimenteel is gemarkeerd, heeft een unieke diagnostische id. Als u toestemming wilt geven voor het gebruik van een experimentele functie, onderdrukt u de specifieke diagnose. U kunt dit doen via een van de middelen voor het onderdrukken van diagnostische gegevens, maar de aanbevolen manier is om de diagnose toe te voegen aan de eigenschap van <NoWarn> het project. Zie Waarschuwingen onderdrukken voor meer informatie.

Omdat elke experimentele functie een afzonderlijke id heeft, geeft toestemming voor het gebruik van één experimentele functie geen toestemming voor het gebruik van een andere.

Verwijzing

De volgende tabel bevat een index voor de SYSLIB5XXX experimentele API's in .NET 9+.

Diagnostische id Experimentele versie Beschrijving
SYSLIB5001 .NET 9 Tensor<T> en gerelateerde API's in System.Numerics.Tensors zijn experimenteel
SYSLIB5002 .NET 9 SystemColors alternatieve kleuren zijn experimenteel
SYSLIB5003 .NET 9 Sve experimenteel is
SYSLIB5004 .NET 9 DivRem(UInt32, Int32, Int32) experimenteel is omdat de prestaties niet zo geoptimaliseerd zijn als T.DivRem
SYSLIB5005 .NET 9 System.Formats.Nrbf experimenteel is

Waarschuwingen onderdrukken

Als u een experimentele functie gebruikt, kunt u feedback verzenden over de API-shape en -functionaliteit voordat de functie wordt gemarkeerd als stabiel en volledig ondersteund. Maar het gebruik van de functie produceert een waarschuwing van de compiler. Wanneer u de waarschuwing onderdrukt, erkent u dat de API-shape of -functionaliteit kan veranderen in de volgende primaire release. De API kan zelfs worden verwijderd. U kunt de waarschuwing onderdrukken via een <NoWarn> projectinstelling (aanbevolen) of een #pragma instructie in code.

De waarschuwingen in een projectbestand onderdrukken:

<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>

De waarschuwingen in code onderdrukken:

// 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

Zie ook