Bagikan melalui


Apa yang baru di C# 13

C# 13 menyertakan fitur baru berikut. Anda dapat mencoba fitur-fitur ini menggunakan Versi Visual Studio 2022 terbaru atau SDK Pratinjau .NET 9.

C# 13 didukung pada .NET 9. Untuk informasi selengkapnya lihat pembuatan versi bahasa C#.

Anda dapat mengunduh SDK pratinjau .NET 9 terbaru dari halaman unduhan .NET. Anda juga dapat mengunduh Visual Studio 2022 - pratinjau, yang mencakup SDK Pratinjau .NET 9.

Fitur baru ditambahkan ke halaman "Apa yang baru di C#" saat tersedia dalam rilis pratinjau publik. Bagian set kerja dari halaman status fitur roslyn dilacak saat fitur mendatang digabungkan ke cabang utama.

Catatan

Kami tertarik dengan umpan balik Anda tentang fitur-fitur ini. Jika Anda menemukan masalah dengan salah satu fitur baru ini, buat masalah baru di repositori dotnet/roslyn.

Urutan escape baru

Anda dapat menggunakan \e sebagai urutan escape literal karakter untuk ESCAPE karakter, Unicode U+001B. Sebelumnya, Anda menggunakan \u001b atau \x1b. Penggunaan \x1b tidak disarankan karena jika karakter berikutnya berikut adalah 1b digit heksadesimal yang valid, karakter tersebut menjadi bagian dari urutan escape.

Jenis alami grup metode

Fitur ini membuat pengoptimalan kecil untuk resolusi kelebihan beban yang melibatkan grup metode. Perilaku sebelumnya adalah bagi pengkompilasi untuk membangun serangkaian lengkap metode kandidat untuk grup metode. Jika jenis alami diperlukan, jenis alami ditentukan dari set lengkap metode kandidat.

Perilaku baru adalah memangkas serangkaian metode kandidat di setiap cakupan, menghapus metode kandidat yang tidak berlaku. Biasanya, ini adalah metode generik dengan aritas yang salah, atau batasan yang tidak terpenuhi. Proses berlanjut ke cakupan luar berikutnya hanya jika tidak ada metode kandidat yang ditemukan. Proses ini lebih dekat mengikuti algoritma umum untuk resolusi kelebihan beban. Jika semua metode kandidat yang ditemukan pada cakupan tertentu tidak cocok, grup metode tidak memiliki jenis alami.

Anda dapat membaca detail perubahan dalam spesifikasi proposal.

Akses indeks implisit

Operator indeks "dari akhir" implisit, ^, sekarang diizinkan dalam ekspresi penginisialisasi objek. Misalnya, Anda sekarang dapat menginisialisasi array dalam penginisialisasi objek seperti yang ditunjukkan dalam kode berikut:

var v = new S()
{
    buffer =
    {
        [^1] = 0,
        [^2] = 1,
        [^3] = 2,
        [^4] = 3,
        [^5] = 4,
        [^6] = 5,
        [^7] = 6,
        [^8] = 7,
        [^9] = 8,
        [^10] = 9
    }
};

Dalam versi sebelum C# 13, ^ operator tidak dapat digunakan dalam penginisialisasi objek. Anda perlu mengindeks elemen dari depan.

Lihat juga