Semua kode yang ditulis dalam bahasa .NET mengkompilasi ke MSIL, tetapi apakah ada tugas / operasi khusus yang dapat Anda lakukan hanya menggunakan MSIL secara langsung?
Mari kita juga melakukan hal-hal yang lebih mudah dalam MSIL daripada C #, VB.NET, F #, j # atau bahasa .NET lainnya.
Sejauh ini kita punya ini:
- Rekursi ekor
- Co Generik / Kontravarian
- Kelebihan yang hanya berbeda dalam jenis pengembalian
- Timpa pengubah akses
- Memiliki kelas yang tidak dapat diwarisi dari System.Object
- Pengecualian yang difilter (dapat dilakukan di vb.net)
- Memanggil metode virtual dari tipe kelas statis saat ini.
- Dapatkan pegangan pada versi kotak dari tipe nilai.
- Lakukan percobaan / kesalahan.
- Penggunaan nama terlarang.
- Tentukan konstruktor tanpa parameter Anda sendiri untuk tipe nilai .
- Tentukan acara dengan
raise
elemen. - Beberapa konversi diizinkan oleh CLR tetapi tidak oleh C #.
- Jadikan
main()
metode non sebagai.entrypoint
. - bekerja dengan jenis asli
int
dan asliunsigned int
secara langsung. - Bermain dengan pointer sementara
- direktif emitbyte di MethodBodyItem
- Lempar dan tangkap bukan tipe System.Exception
- Warisan Enum (Tidak Diverifikasi)
- Anda dapat memperlakukan array byte sebagai array int (4x lebih kecil).
- Anda dapat memiliki bidang / metode / properti / acara semua memiliki nama yang sama (Tidak Diverifikasi).
- Anda bisa bercabang kembali menjadi blok percobaan dari blok tangkapnya sendiri.
- Anda memiliki akses ke specifier akses famandassem (
protected internal
is fam or assem) - Akses langsung ke
<Module>
kelas untuk mendefinisikan fungsi global, atau inisialisasi modul.