Bagikan melalui


Fitur eksperimental di .NET 9+

Mulai dari .NET 9, beberapa fitur menggunakan ExperimentalAttribute untuk menunjukkan bahwa bentuk atau fungsionalitas API disertakan dalam rilis tetapi belum didukung secara resmi. Fitur eksperimental memungkinkan tim .NET mengumpulkan umpan balik tentang bentuk dan fungsionalitas API dengan tujuan menyempurnakan API dan menghapus [Experimental] atribut dalam rilis utama berikutnya.

Saat kode Anda mereferensikan API eksperimental, pengkompilasi menghasilkan kesalahan dengan ID seperti SYSLIB5XXX. Setiap fitur yang ditandai sebagai eksperimental memiliki ID diagnostik unik. Untuk menyatakan persetujuan untuk menggunakan fitur eksperimental, Anda menekan diagnostik tertentu. Anda dapat melakukannya melalui salah satu cara untuk menekan diagnostik, tetapi cara yang disarankan adalah dengan menambahkan diagnostik ke properti proyek <NoWarn> . Untuk informasi selengkapnya, lihat Menyembunyikan peringatan.

Karena setiap fitur eksperimental memiliki ID terpisah, menyetujui untuk menggunakan satu fitur eksperimental tidak menyetujui untuk menggunakan yang lain.

Referensi

Tabel berikut ini menyediakan indeks ke SYSLIB5XXX API eksperimental di .NET 9+.

ID diagnostik Pengenalan Deskripsi
SYSLIB5001 .NET 9 Tensor<T> dan API terkait di System.Numerics.Tensors bersifat eksperimental
SYSLIB5002 .NET 9 SystemColors warna alternatif bersifat eksperimental
SYSLIB5003 .NET 9 Sve bersifat eksperimental
SYSLIB5004 .NET 9 DivRem(UInt32, Int32, Int32) bersifat eksperimental karena performa tidak dioptimalkan seperti T.DivRem
SYSLIB5005 .NET 9 System.Formats.Nrbf bersifat eksperimental
SYSLIB5006 .NET 10 Jenis untuk kriptografi pasca-kuantum (PQC) bersifat eksperimental.

Menutupi peringatan

Menggunakan fitur eksperimental memberi Anda kesempatan untuk mengirimkan umpan balik pada bentuk dan fungsionalitas API sebelum fitur ditandai sebagai stabil dan didukung sepenuhnya. Tetapi menggunakan fitur ini menghasilkan peringatan dari pengkompilasi. Saat Anda menekan peringatan, Anda mengakui bahwa bentuk atau fungsionalitas API mungkin berubah dalam rilis utama berikutnya. API bahkan mungkin dihapus. Anda dapat menekan peringatan melalui <NoWarn> pengaturan proyek (disarankan) atau #pragma direktif dalam kode.

Untuk menutupi peringatan dalam file proyek:

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

Untuk menutupi peringatan dalam kode:

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

Lihat juga