Daftar Isi:
Definisi - Apa artinya Unsafe?
Unsafe adalah kata kunci bahasa pemrograman C (C #) yang digunakan untuk menunjukkan bagian kode yang tidak dikelola oleh Common Language Runtime (CLR) dari .NET Framework, atau kode yang tidak dikelola. Tidak aman digunakan dalam pernyataan tipe atau anggota atau untuk menentukan kode blok. Saat digunakan untuk menentukan metode, konteks seluruh metode tidak aman.
Kode tidak aman memberikan interoperabilitas yang baik dengan antarmuka pemrograman aplikasi (API) atau panggilan sistem yang tidak dikelola dan berfungsi sebagai antarmuka yang kompatibel untuk perpustakaan tautan dinamis pihak ketiga (DLL), yang membutuhkan pointer untuk melewatkan parameter. Kode yang tidak aman juga dapat digunakan selama debugging, ketika konten proses memerlukan inspeksi atau analisis.
Techopedia menjelaskan Tidak Aman
Data yang tidak aman mengacu pada data memori yang dialokasikan yang tidak dikontrol oleh CLR, seperti pegangan atau pointer Windows yang dialokasikan melalui metode baru.
Kode tidak aman mengacu pada pernyataan atau metode yang mengakses memori yang tidak dikelola, termasuk:
- Panggilan ke API Windows
- Panggilan ke Komponen Objek Model (COM) metode antarmuka komponen yang melibatkan struktur dengan pointer atau kode kritis kinerja.
Kode tidak aman terutama digunakan ketika operasi melibatkan pointer dan, umumnya, ketika kode dieksekusi di luar konteks yang dikelola. Kompilasi kode yang tidak aman memerlukan spesifikasi opsi "/ tidak aman" dengan perintah kompilasi.
Di lingkungan yang sepenuhnya tepercaya, CLR diperlukan untuk eksekusi kode yang tidak aman. Namun, CLR tidak memverifikasi kode tidak aman. CLR mendukung kode yang tidak aman untuk memberikan akses langsung ke kode memori yang tidak dikelola, yang terkadang lebih disukai karena alasan kinerja.
Karena CLR mempertahankan jenis keselamatan dan keamanan, C # tidak mendukung aritmatika pointer dalam kode yang dikelola, tidak seperti C / C ++. Kata kunci yang tidak aman memungkinkan penggunaan pointer dalam kode yang tidak dikelola. Namun, keamanan tidak dijamin karena aturan akses objek yang ketat tidak diikuti. Misalnya, kemampuan operasi pointer tidak disediakan di Java Runtime Environment (JRE).
Kode yang tidak aman dapat menimbulkan masalah dengan stabilitas dan keamanan, karena sintaksisnya yang melekat dan potensial untuk kesalahan terkait memori, seperti stack overflow, mengakses dan menimpa memori sistem. Perawatan pengembang ekstra sangat penting untuk mencegah potensi kesalahan atau risiko keamanan.
