다음을 통해 공유


.NET 9+의 실험적 기능

.NET 9부터 일부 기능은 API 셰이프 또는 기능이 릴리스에 포함되어 있지만 아직 공식적으로 지원되지 않음을 나타내기 위해 사용합니다 ExperimentalAttribute . 실험적 기능을 통해 .NET 팀은 API를 구체화하고 다음 주 릴리스에서 특성을 제거할 [Experimental] 목적으로 API의 모양과 기능에 대한 피드백을 수집할 수 있습니다.

코드가 실험적 API를 참조하는 경우 컴파일러는 다음과 같은 SYSLIB5XXXID로 오류를 생성합니다. 실험적으로 표시된 각 기능에는 고유한 진단 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

참고 항목