.NET 9+의 실험적 기능
.NET 9부터 일부 기능은 API 셰이프 또는 기능이 릴리스에 포함되어 있지만 아직 공식적으로 지원되지 않음을 나타내기 위해 사용합니다 ExperimentalAttribute . 실험적 기능을 통해 .NET 팀은 API를 구체화하고 다음 주 릴리스에서 특성을 제거할 [Experimental]
목적으로 API의 모양과 기능에 대한 피드백을 수집할 수 있습니다.
코드가 실험적 API를 참조하는 경우 컴파일러는 다음과 같은 SYSLIB5XXX
ID로 오류를 생성합니다. 실험적으로 표시된 각 기능에는 고유한 진단 ID가 있습니다. 실험적 기능 사용에 대한 동의를 표시하려면 특정 진단을 표시하지 않습니다. 진단을 표시하지 않는 방법을 통해 이 작업을 수행할 수 있지만 권장되는 방법은 프로젝트의 <NoWarn>
속성에 진단을 추가하는 것입니다. 자세한 내용은 경고 표시 안 함을 참조하세요.
각 실험적 기능에는 별도의 ID가 있으므로 하나의 실험적 기능 사용에 동의해도 다른 기능을 사용하는 것에 동의하지 않습니다.
참조
다음 표에서는 .NET 9 이상에서 실험적 API에 대한 인덱 SYSLIB5XXX
스를 제공합니다.
진단 ID | 실험적 버전 | 설명 |
---|---|---|
SYSLIB5001 | .NET 9 | Tensor<T> 및 관련 API는 System.Numerics.Tensors 실험적입니다. |
SYSLIB5002 | .NET 9 | SystemColors 대체 색은 실험적입니다. |
SYSLIB5003 | .NET 9 | Sve 실험적입니다. |
SYSLIB5004 | .NET 9 | DivRem(UInt32, Int32, Int32) 는 성능이 최적화되지 않았기 때문에 실험적입니다. T.DivRem |
SYSLIB5005 | .NET 9 | System.Formats.Nrbf 실험적입니다. |
경고 표시 안 함
실험적 기능을 사용하면 기능이 안정적이고 완벽하게 지원되는 것으로 표시되기 전에 API 셰이프 및 기능에 대한 피드백을 제출할 수 있습니다. 그러나 이 기능을 사용하면 컴파일러에서 경고가 생성됩니다. 경고를 표시하지 않으면 다음 주 릴리스에서 API 셰이프 또는 기능이 변경될 수 있음을 인정합니다. API가 제거될 수도 있습니다. 코드에서 프로젝트 설정(권장) 또는 지시문을 통해 <NoWarn>
경고를 표시하지 #pragma
않을 수 있습니다.
프로젝트 파일에서 경고를 표시하지 않으려면 다음을 수행합니다.
<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>
코드에서 경고를 표시하지 않으려면 다음을 수행합니다.
// 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
참고 항목
.NET