Udostępnij przez


Funkcje eksperymentalne na platformie .NET 9+

Począwszy od platformy .NET 9, niektóre funkcje korzystają z ExperimentalAttribute elementu , aby wskazać, że kształt lub funkcjonalność interfejsu API jest uwzględniona w wersji, ale nie jest jeszcze oficjalnie obsługiwana. Funkcje eksperymentalne umożliwiają zespołowi platformy .NET zbieranie opinii na temat kształtu i funkcjonalności interfejsu API z zamiarem uściślenia interfejsu API i usunięcia atrybutu [Experimental] w następnej wersji głównej.

Gdy kod odwołuje się do eksperymentalnego interfejsu API, kompilator generuje błąd z identyfikatorem, na przykład SYSLIB5XXX. Każda funkcja oznaczona jako eksperymentalna ma unikatowy identyfikator diagnostyczny. Aby wyrazić zgodę na korzystanie z funkcji eksperymentalnej, pomijasz określoną diagnostykę. Można to zrobić za pomocą dowolnego ze środków pomijania diagnostyki, ale zalecanym sposobem jest dodanie diagnostyki do właściwości projektu <NoWarn> . Aby uzyskać więcej informacji, zobacz Pomijanie ostrzeżeń.

Ponieważ każda funkcja eksperymentalna ma oddzielny identyfikator, zgoda na używanie jednej funkcji eksperymentalnej nie wyraża zgody na korzystanie z innej funkcji.

Odwołanie

Poniższa tabela zawiera indeks SYSLIB5XXX dla eksperymentalnych interfejsów API na platformie .NET 9+.

Identyfikator diagnostyczny Wprowadzono opis
SYSLIB5001 .NET 9 Tensor<T> powiązane interfejsy API w programie System.Numerics.Tensors są eksperymentalne
SYSLIB5002 .NET 9 SystemColors kolory alternatywne są eksperymentalne
SYSLIB5003 .NET 9 Sve jest eksperymentalna
SYSLIB5004 .NET 9 DivRem(UInt32, Int32, Int32) jest eksperymentalna, ponieważ wydajność nie jest tak zoptymalizowana, jak T.DivRem
SYSLIB5005 .NET 9 System.Formats.Nrbf jest eksperymentalna
SYSLIB5006 .NET 10 Typy kryptografii po kwantowej (PQC) są eksperymentalne.

Pomijanie ostrzeżeń

Użycie funkcji eksperymentalnej umożliwia przesłanie opinii na temat kształtu i funkcjonalności interfejsu API, zanim funkcja zostanie oznaczona jako stabilna i w pełni obsługiwana. Jednak użycie tej funkcji powoduje ostrzeżenie kompilatora. Po pomiń ostrzeżenie potwierdzasz, że kształt lub funkcjonalność interfejsu API może ulec zmianie w następnej wersji głównej. Interfejs API może zostać nawet usunięty. Ostrzeżenie można pominąć za pomocą <NoWarn> ustawienia projektu (zalecane) lub #pragma dyrektywy w kodzie.

Aby pominąć ostrzeżenia w pliku projektu:

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

Aby pominąć ostrzeżenia w kodzie:

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

Zobacz też