Sdílet prostřednictvím


Experimentální funkce v .NET 9 nebo novějších

Počínaje verzí .NET 9 některé funkce používají ExperimentalAttribute k označení, že tvar nebo funkce rozhraní API jsou součástí verze, ale zatím nejsou oficiálně podporované. Experimentální funkce umožňují týmu .NET shromáždit zpětnou vazbu k tvaru a funkcím rozhraní API se záměrem upřesnit rozhraní API a odebrat [Experimental] atribut v příští hlavní verzi.

Když váš kód odkazuje na experimentální rozhraní API, kompilátor vytvoří chybu s ID, jako je SYSLIB5XXX. Každá funkce označená jako experimentální má jedinečné ID diagnostiky. Pokud chcete vyjádřit souhlas s používáním experimentální funkce, potlačíte konkrétní diagnostiku. Můžete to provést pomocí jakéhokoliv prostředku pro potlačení diagnostiky, ale doporučeným způsobem je přidat diagnostiku do vlastnosti projektu <NoWarn> . Další informace naleznete v tématu Potlačení upozornění.

Vzhledem k tomu, že každá experimentální funkce má samostatné ID, souhlas s použitím jedné experimentální funkce nesouhlasí s použitím jiné.

Reference

Následující tabulka obsahuje index SYSLIB5XXX experimentálních rozhraní API v .NET 9 nebo novějších.

ID diagnostiky Experimentální verze Popis
SYSLIB5001 .NET 9 Tensor<T> a související rozhraní API jsou System.Numerics.Tensors experimentální
SYSLIB5002 .NET 9 SystemColors alternativní barvy jsou experimentální.
SYSLIB5003 .NET 9 Sve je experimentální
SYSLIB5004 .NET 9 DivRem(UInt32, Int32, Int32) je experimentální, protože výkon není optimalizovaný jako T.DivRem
SYSLIB5005 .NET 9 System.Formats.Nrbf je experimentální

Potlačení upozornění

Pomocí experimentální funkce můžete odeslat zpětnou vazbu k obrazci a funkcím rozhraní API předtím, než se tato funkce označí jako stabilní a plně podporovaná. Použití funkce ale vytvoří upozornění z kompilátoru. Když potlačíte upozornění, berete na vědomí, že se obrazec nebo funkce rozhraní API může v příští hlavní verzi změnit. Rozhraní API může být dokonce odebráno. Upozornění můžete potlačit nastavením <NoWarn> projektu (doporučeno) nebo direktivou #pragma v kódu.

Potlačení upozornění v souboru 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>

Potlačení upozornění v kódu:

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

Viz také