1. Assembly trong .NET là gì?
A. Một đoạn mã C#
B. Đơn vị triển khai và tái sử dụng code trong .NET
C. Một kiểu dữ liệu
D. Một công cụ debug
2. Middleware trong ASP.NET Core pipeline xử lý request hoạt động theo cơ chế nào?
A. Ngẫu nhiên
B. Tuần tự, theo thứ tự đăng ký trong pipeline
C. Song song
D. Ưu tiên theo mức độ quan trọng
3. Trong ngữ cảnh bảo mật .NET, Code Access Security (CAS) dùng để làm gì?
A. Mã hóa dữ liệu
B. Kiểm soát quyền truy cập code dựa trên nguồn gốc và chứng chỉ
C. Xác thực người dùng
D. Ngăn chặn tấn công SQL Injection
4. Reflection trong .NET cho phép làm gì?
A. Biên dịch code sang mã máy
B. Kiểm tra và thao tác metadata của assembly và types tại runtime
C. Tối ưu hóa hiệu suất
D. Quản lý bộ nhớ tự động
5. Entity Framework Core (EF Core) là một ORM (Object-Relational Mapper) dùng để làm gì?
A. Phát triển giao diện người dùng
B. Quản lý bộ nhớ
C. Tương tác với cơ sở dữ liệu bằng cách làm việc với các đối tượng C#
D. Triển khai ứng dụng lên server
6. Serialization trong .NET là quá trình chuyển đổi đối tượng thành dạng nào?
A. Mã máy
B. Dạng nhị phân hoặc XML (hoặc các định dạng khác)
C. SQL
D. JSON
7. Kiểu dữ liệu nào sau đây KHÔNG phải là kiểu giá trị (value type) trong C#?
A. int
B. char
C. struct
D. string
8. CLR trong .NET Framework là viết tắt của cụm từ nào?
A. Common Language Runtime
B. Component Library Resource
C. Class Library Reference
D. Code Linking Repository
9. WPF (Windows Presentation Foundation) chủ yếu được sử dụng để phát triển loại ứng dụng nào?
A. Ứng dụng web
B. Ứng dụng dòng lệnh
C. Ứng dụng desktop với giao diện người dùng phong phú
D. Dịch vụ web
10. Từ khóa `using` trong C# có chức năng chính nào sau đây?
A. Khai báo biến cục bộ
B. Nhập namespace
C. Xử lý ngoại lệ
D. Định nghĩa interface
11. Ngôn ngữ lập trình chính được sử dụng để phát triển ứng dụng .NET là gì?
A. Java
B. C++
C. C#
D. Python
12. Garbage Collection (GC) trong .NET CLR có nhiệm vụ chính nào?
A. Quản lý phiên bản assembly
B. Tối ưu hóa hiệu suất CPU
C. Giải phóng bộ nhớ không còn được sử dụng bởi ứng dụng
D. Xử lý ngoại lệ
13. Dependency Injection (DI) mang lại lợi ích chính nào trong phát triển ứng dụng .NET?
A. Tăng tốc độ biên dịch
B. Giảm kích thước file thực thi
C. Tăng tính kiểm thử và bảo trì
D. Cải thiện hiệu suất runtime
14. Phương thức mở rộng (extension method) trong C# được định nghĩa trong loại lớp nào?
A. Lớp trừu tượng (abstract class)
B. Lớp tĩnh (static class)
C. Lớp sealed (sealed class)
D. Lớp generic (generic class)
15. IActionResult trong ASP.NET Core MVC được sử dụng để làm gì?
A. Định nghĩa interface cho Model
B. Trả về kết quả từ action method của Controller
C. Xử lý lỗi
D. Khai báo biến
16. Tính năng nào sau đây KHÔNG phải là một phần của .NET Core (trước đây, giờ là .NET)?
A. Cross-platform (đa nền tảng)
B. Open-source (mã nguồn mở)
C. Chỉ chạy trên Windows
D. Modular (mô-đun hóa)
17. Async và Await trong C# được sử dụng để làm gì?
A. Tối ưu hóa bộ nhớ
B. Thực hiện lập trình đa luồng không đồng bộ
C. Quản lý ngoại lệ
D. Tăng cường bảo mật
18. Event trong C# là cơ chế cho phép lớp (class) nào thông báo cho lớp (class) khác khi có sự kiện xảy ra?
A. Lớp dẫn xuất thông báo cho lớp cơ sở
B. Lớp cơ sở thông báo cho lớp dẫn xuất
C. Lớp chứa event (publisher) thông báo cho lớp đăng ký (subscriber)
D. Mọi lớp đều có thể thông báo cho mọi lớp khác
19. NuGet là gì trong ngữ cảnh phát triển .NET?
A. Một ngôn ngữ lập trình mới
B. Một trình quản lý gói (package manager)
C. Một công cụ debug code
D. Một framework UI
20. Đặc điểm nào sau đây KHÔNG phải là ưu điểm của việc sử dụng thuộc tính (property) thay vì trường (field) public trong C#?
A. Kiểm soát truy cập tốt hơn
B. Tính đóng gói (encapsulation) cao hơn
C. Hiệu suất truy cập nhanh hơn
D. Cho phép thêm logic tùy chỉnh khi truy cập
21. Boxing và Unboxing trong C# liên quan đến việc chuyển đổi giữa kiểu nào?
A. Kiểu lớp và kiểu cấu trúc
B. Kiểu giá trị và kiểu tham chiếu
C. Kiểu số nguyên và kiểu số thực
D. Kiểu generic và kiểu non-generic
22. Lỗi `NullReferenceException` thường xảy ra khi nào trong .NET?
A. Chia cho 0
B. Truy cập thành viên của một đối tượng null
C. Lỗi cú pháp
D. Tràn số
23. LINQ trong .NET Framework là viết tắt của cụm từ nào?
A. Language Integrated Navigation Query
B. Language Independent Network Query
C. Language Integrated Query
D. Library Interface and Network Query
24. Attribute trong C# được sử dụng để làm gì?
A. Định nghĩa biến toàn cục
B. Cung cấp metadata cho code
C. Tạo ra các lớp trừu tượng
D. Kiểm soát truy cập bộ nhớ
25. Sự khác biệt chính giữa `is` và `as` operator trong C# là gì?
A. `is` dùng để ép kiểu, `as` dùng để kiểm tra kiểu
B. `is` trả về boolean, `as` trả về null nếu không ép kiểu được
C. `is` chỉ dùng cho kiểu giá trị, `as` chỉ dùng cho kiểu tham chiếu
D. Không có sự khác biệt, chúng có thể thay thế nhau
26. Trong ASP.NET MVC, thành phần nào chịu trách nhiệm xử lý logic nghiệp vụ và tương tác với dữ liệu?
A. View
B. Controller
C. Model
D. Layout
27. Delegates trong C# được sử dụng để làm gì?
A. Quản lý bộ nhớ
B. Định nghĩa lớp trừu tượng
C. Tham chiếu đến phương thức
D. Tạo đối tượng
28. Interface trong C# KHÔNG thể chứa thành phần nào sau đây?
A. Phương thức (method)
B. Thuộc tính (property)
C. Sự kiện (event)
D. Trường (field)
29. Generics trong C# cung cấp cơ chế nào?
A. Tạo ra các kiểu dữ liệu mới
B. Viết code có thể làm việc với nhiều kiểu dữ liệu mà vẫn đảm bảo kiểu an toàn
C. Tăng tốc độ thực thi
D. Giảm thiểu lỗi runtime
30. ViewState trong ASP.NET Web Forms được sử dụng để làm gì?
A. Quản lý session người dùng
B. Lưu trữ trạng thái của các control trên trang web giữa các postback
C. Xác thực người dùng
D. Cải thiện hiệu suất trang web