1. Trong Entity Framework Core, phương thức nào được sử dụng để thêm một entity mới vào database context?
A. Update()
B. Attach()
C. Add()
D. Remove()
2. Trong ASP.NET Core, Dependency Injection (DI) container chịu trách nhiệm cho việc gì?
A. Quản lý routing của ứng dụng
B. Cung cấp các dependencies cho các classes
C. Xác thực người dùng
D. Quản lý session state
3. Trong C#, extension method cho phép làm gì?
A. Thêm phương thức mới vào một interface đã tồn tại
B. Thêm phương thức mới vào một class đã tồn tại mà không cần sửa đổi class đó
C. Tạo ra một class mới từ một class đã tồn tại
D. Thay đổi hành vi của một phương thức đã tồn tại
4. Trong C#, sự khác biệt giữa `const` và `readonly` là gì?
A. `const` được gán giá trị tại runtime, `readonly` được gán giá trị tại compile time
B. `const` được gán giá trị tại compile time, `readonly` được gán giá trị tại runtime (hoặc constructor)
C. Không có sự khác biệt, chúng hoàn toàn giống nhau
D. `const` chỉ dùng cho kiểu số, `readonly` dùng cho mọi kiểu
5. Trong C#, mục đích của từ khóa `using` là gì khi sử dụng với các đối tượng IDisposable?
A. Đảm bảo rằng đối tượng sẽ được garbage collected ngay lập tức
B. Đảm bảo rằng phương thức Dispose() của đối tượng sẽ được gọi khi ra khỏi block
C. Cho phép truy cập đối tượng từ nhiều thread
D. Tạo ra một bản sao của đối tượng
6. Trong ASP.NET Core, Razor Pages là gì?
A. Một cách viết code JavaScript trong ASP.NET Core
B. Một cách viết server-side code trong Razor views
C. Một model programming pattern để xây dựng UI
D. Một cách đơn giản hóa việc xây dựng trang web dựa trên file .cshtml
7. Trong ASP.NET Core, middleware là gì?
A. Một thành phần để định nghĩa routing
B. Một thành phần xử lý HTTP request
C. Một thành phần để xác thực người dùng
D. Một thành phần để quản lý session
8. Trong .NET, sự khác biệt chính giữa Interface và Abstract Class là gì?
A. Interface có thể chứa implementation, Abstract Class thì không
B. Abstract Class có thể chứa implementation, Interface thì không
C. Interface có thể kế thừa từ Abstract Class, Abstract Class thì không
D. Không có sự khác biệt, chúng hoàn toàn giống nhau
9. Trong .NET, garbage collector (GC) có chức năng gì?
A. Quản lý bộ nhớ bằng cách cấp phát và giải phóng bộ nhớ tự động
B. Tối ưu hóa hiệu suất của ứng dụng
C. Xử lý các exception trong ứng dụng
D. Quản lý các thread trong ứng dụng
10. Trong ASP.NET Core, View Component là gì?
A. Một phần của URL routing
B. Một controller đặc biệt
C. Một reusable UI component
D. Một middleware
11. Trong .NET, namespace nào chứa các lớp để làm việc với các biểu thức chính quy (regular expressions)?
A. System.IO
B. System.Net
C. System.Text.RegularExpressions
D. System.Threading
12. Trong ASP.NET Core, Kestrel là gì?
A. Một ORM (Object-Relational Mapper)
B. Một web server cross-platform
C. Một template engine
D. Một công cụ để build front-end
13. Trong C#, mục đích của từ khóa `yield return` là gì?
A. Trả về một giá trị từ một phương thức bất đồng bộ
B. Tạo ra một iterator
C. Định nghĩa một delegate
D. Xử lý exception
14. Trong .NET, Code Contracts được sử dụng để làm gì?
A. Tối ưu hóa hiệu suất code
B. Định nghĩa các pre-condition, post-condition và invariants cho code
C. Quản lý dependencies
D. Tạo ra tài liệu tự động
15. Trong .NET, LINQ 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. Linear Independent Network Query
16. Trong ASP.NET Core, Tag Helper là gì?
A. Một công cụ để tạo API
B. Một cách để tạo HTML helper
C. Một thành phần cho phép server-side code render HTML elements
D. Một công cụ để quản lý dependencies
17. Trong .NET, kiểu dữ liệu nào được sử dụng để biểu diễn một giá trị boolean (true hoặc false)?
A. Int32
B. String
C. Boolean
D. DateTime
18. Delegate trong C# .NET là gì?
A. Một kiểu dữ liệu nguyên thủy
B. Một kiểu tham chiếu đại diện cho phương thức
C. Một lớp cơ sở cho tất cả các lớp
D. Một giao diện (interface) đặc biệt
19. Trong lập trình bất đồng bộ (asynchronous programming) với C#, từ khóa `async` được sử dụng để làm gì?
A. Đánh dấu một phương thức có thể được thực thi đồng bộ
B. Đánh dấu một phương thức có thể được thực thi bất đồng bộ
C. Định nghĩa một biến cục bộ
D. Khai báo một delegate
20. Phương thức nào của đối tượng `StreamReader` được sử dụng để đọc một dòng văn bản từ một file?
A. Read()
B. ReadLine()
C. ReadToEnd()
D. ReadBlock()
21. Trong C#, thuộc tính (property) khác gì so với biến thành viên (field)?
A. Thuộc tính không thể truy cập được từ bên ngoài class
B. Thuộc tính cung cấp cơ chế kiểm soát truy cập thông qua get/set
C. Biến thành viên không thể là static
D. Không có sự khác biệt, chúng hoàn toàn giống nhau
22. Trong C#, từ khóa `sealed` có ý nghĩa gì khi áp dụng cho một class?
A. Class không thể được khởi tạo
B. Class không thể được kế thừa
C. Class không thể chứa phương thức virtual
D. Class chỉ có thể được truy cập từ assembly hiện tại
23. Trong ASP.NET Core, mục đích của `appsettings.json` là gì?
A. Định nghĩa URL routing
B. Lưu trữ cấu hình của ứng dụng
C. Định nghĩa các middleware
D. Lưu trữ các view
24. Trong .NET, mục đích của Global Assembly Cache (GAC) là gì?
A. Lưu trữ tạm thời các file DLL
B. Lưu trữ các assembly dùng chung cho nhiều ứng dụng
C. Lưu trữ các file cấu hình của ứng dụng
D. Lưu trữ các file log của ứng dụng
25. Trong .NET, khái niệm boxing và unboxing liên quan đến kiểu dữ liệu nào?
A. Kiểu tham chiếu (reference types)
B. Kiểu giá trị (value types)
C. Kiểu nullable
D. Kiểu dynamic
26. Trong C#, sự khác biệt chính giữa `==` và phương thức `.Equals()` là gì?
A. `==` so sánh giá trị, `.Equals()` so sánh tham chiếu
B. `==` so sánh tham chiếu, `.Equals()` so sánh giá trị (có thể override)
C. Không có sự khác biệt, cả hai đều giống nhau
D. `==` chỉ dùng cho kiểu số, `.Equals()` dùng cho mọi kiểu
27. Thuộc tính nào của đối tượng `SqlConnection` được sử dụng để chỉ định chuỗi kết nối (connection string) đến cơ sở dữ liệu?
A. ConnectionString
B. Database
C. Server
D. ConnectionTimeout
28. Đâu là lợi ích chính của việc sử dụng async/await trong .NET?
A. Giảm mức sử dụng bộ nhớ
B. Tăng tốc độ thực thi code đồng bộ
C. Cải thiện khả năng phản hồi của ứng dụng
D. Đơn giản hóa việc quản lý bộ nhớ
29. Trong .NET, khi nào nên sử dụng struct thay vì class?
A. Khi cần tính năng kế thừa
B. Khi cần tạo ra các đối tượng lớn
C. Khi cần tạo ra các đối tượng nhỏ, immutable, và có hành vi giống value type
D. Không có sự khác biệt, có thể dùng thay thế nhau hoàn toàn
30. Trong .NET, Assembly là gì?
A. Một đoạn code có thể tái sử dụng
B. Một đơn vị triển khai, chứa code, metadata và resources
C. Một interface
D. Một thuật toán sắp xếp