Compartir a través de


Características experimentales en .NET 9+

A partir de ExperimentalAttribute .NET 9, algunas características usan para indicar que la forma o la funcionalidad de la API se incluyen en la versión, pero aún no se admiten oficialmente. Las características experimentales permiten al equipo de .NET recopilar comentarios sobre la forma y la funcionalidad de una API con la intención de refinar la API y quitar el [Experimental] atributo en la próxima versión principal.

Cuando el código hace referencia a una API experimental, el compilador genera un error con un identificador como SYSLIB5XXX. Cada característica marcada como experimental tiene un identificador de diagnóstico único. Para expresar el consentimiento para usar una característica experimental, suprima el diagnóstico específico. Puede hacerlo a través de cualquiera de los medios para suprimir diagnósticos, pero la manera recomendada es agregar el diagnóstico a la propiedad <NoWarn> del proyecto. Para obtener más información, vea Suprimir advertencias.

Dado que cada característica experimental tiene un identificador independiente, el consentimiento para usar una no da su consentimiento para usar otra.

Referencia

En la tabla siguiente se proporciona un índice a las SYSLIB5XXX API experimentales en .NET 9 y versiones posteriores.

Id. de diagnóstico Versión experimental Descripción
SYSLIB5001 .NET 9 Tensor<T> y las API relacionadas en System.Numerics.Tensors son experimentales
SYSLIB5002 .NET 9 SystemColors los colores alternativos son experimentales
SYSLIB5003 .NET 9 Sve es experimental
SYSLIB5004 .NET 9 DivRem(UInt32, Int32, Int32) es experimental, ya que el rendimiento no está tan optimizado como T.DivRem
SYSLIB5005 .NET 9 System.Formats.Nrbf es experimental

Suprimir advertencias

El uso de una característica experimental le ofrece la oportunidad de enviar comentarios sobre la forma y la funcionalidad de la API antes de que la característica se marque como estable y totalmente compatible. Pero el uso de la característica genera una advertencia del compilador. Al suprimir la advertencia, reconoce que la forma o la funcionalidad de la API pueden cambiar en la próxima versión principal. Es posible que incluso se quite la API. Puede suprimir la advertencia a través de una <NoWarn> configuración de proyecto (recomendada) o una #pragma directiva en el código.

Para suprimir las advertencias en un archivo de proyecto:

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

Para suprimir las advertencias en el código:

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

Consulte también