Tất cả các mã được viết bằng ngôn ngữ .NET biên dịch thành MSIL, nhưng có các tác vụ / thao tác cụ thể mà bạn chỉ có thể thực hiện khi sử dụng MSIL trực tiếp không?
Chúng ta cũng có những thứ được thực hiện dễ dàng hơn trong MSIL so với C #, VB.NET, F #, j # hoặc bất kỳ ngôn ngữ .NET nào khác.
Cho đến nay chúng ta có điều này:
- Đuôi đệ quy
- Chung chung / Chống chỉ định
- Quá tải chỉ khác nhau ở các loại trả về
- Ghi đè sửa đổi truy cập
- Có một lớp không thể kế thừa từ System.Object
- Các ngoại lệ được lọc (có thể được thực hiện trong vb.net)
- Gọi một phương thức ảo của loại lớp tĩnh hiện tại.
- Nhận một điều khiển trên phiên bản đóng hộp của một loại giá trị.
- Làm thử / lỗi.
- Sử dụng tên cấm.
- Xác định các hàm tạo không tham số của riêng bạn cho các loại giá trị .
- Xác định các sự kiện với một
raise
yếu tố. - Một số chuyển đổi được CLR cho phép nhưng không phải bởi C #.
- Thực hiện một
main()
phương pháp không phải là.entrypoint
. - làm việc với các loại bản địa
int
và bản địaunsigned int
trực tiếp. - Chơi với con trỏ thoáng qua
- chỉ thị phát ra trong Phương thứcBodyItem
- Ném và bắt các loại System.Exception
- Kế thừa Enums (Chưa được xác minh)
- Bạn có thể coi một mảng byte là một mảng int (nhỏ hơn 4 lần).
- Bạn có thể có một trường / phương thức / thuộc tính / sự kiện đều có cùng tên (Chưa được xác minh).
- Bạn có thể phân nhánh trở lại thành một khối thử từ khối bắt riêng của nó.
- Bạn có quyền truy cập vào công cụ xác định truy cập famandassem (
protected internal
là fam hoặc lắp ráp) - Truy cập trực tiếp vào
<Module>
lớp để xác định các hàm toàn cục hoặc trình khởi tạo mô-đun.