Bagikan melalui


Hubungan antara fitur bahasa dan jenis pustaka

Definisi bahasa C# memerlukan pustaka standar agar memiliki jenis tertentu dan anggota tertentu yang dapat diakses pada jenis tersebut. Kompilator menghasilkan kode yang menggunakan jenis dan anggota yang diperlukan ini untuk banyak fitur bahasa yang berbeda. Untuk alasan ini, versi C# hanya didukung untuk versi .NET yang sesuai dan yang lebih baru. Itu memastikan perilaku run-time yang benar dan ketersediaan semua jenis dan anggota yang diperlukan.

Dependensi pada fungsionalitas pustaka standar ini telah menjadi bagian dari bahasa C# sejak versi pertamanya. Dalam versi tersebut, contohnya termasuk:

  • Exception - digunakan untuk semua pengecualian yang dihasilkan kompilator.
  • String - sinonim dari string.
  • Int32 - sinonim dari int.

Versi pertama tersebut sederhana: kompilator dan pustaka standar dikirim bersama, dan hanya ada satu versi untuk masing-masing dari keduanya.

Versi C# berikutnya terkadang menambahkan jenis atau anggota baru ke dependensi. Contohnya meliputi: INotifyCompletion, CallerFilePathAttribute, dan CallerMemberNameAttribute. C# 7.0 menambahkan dependensi untuk ValueTuple menerapkan fitur bahasa tuple. C# 8 memerlukan System.Index dan System.Range untuk rentang dan indeks, di antara fitur lainnya. Setiap versi baru mungkin menambahkan persyaratan tambahan.

Tim desain bahasa bekerja untuk meminimalkan luas permukaan jenis dan anggota yang diperlukan dalam pustaka standar yang sesuai. Tujuan tersebut diimbangi dengan desain yang bersih di mana fitur pustaka baru digabungkan dengan lancar ke dalam bahasa. Akan ada fitur baru di versi C# mendatang yang memerlukan jenis dan anggota baru di pustaka standar. Alat kompilator C# sekarang dipisahkan dari siklus rilis pustaka .NET pada platform yang didukung.