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