Câu hỏi phỏng vấn C#
Câu hỏi

Reflection trong C# là gì?

Câu trả lời

Reflection trong C# là một tính năng mạnh mẽ của .NET Framework cho phép bạn kiểm tra thông tin về các assembly, module và type tại thời điểm chạy (runtime). Bạn có thể sử dụng reflection để tạo đối tượng động, gọi phương thức, truy cập thuộc tính và field, và thậm chí là kiểm tra và sử dụng các thông tin metadata của type.

Đặc điểm của Reflection:

  • Kiểm tra Type: Reflection cho phép bạn lấy thông tin về các type đã được load vào bộ nhớ, bao gồm cả tên, thuộc tính, phương thức, field, event, và các thông tin khác.
  • Tạo Đối Tượng Động: Bạn có thể sử dụng reflection để tạo instance của một type mà không cần biết tên cụ thể của type đó tại thời điểm biên dịch.
  • Gọi Phương Thức Động: Reflection cho phép bạn gọi phương thức của một đối tượng mà không cần biết chi tiết về phương thức đó trước.
  • Truy cập và Sửa đổi Dữ liệu: Bạn có thể truy cập và thay đổi giá trị của các field và thuộc tính, ngay cả khi chúng được đánh dấu là private hoặc protected.

Sử dụng Reflection:

Reflection thường được sử dụng trong các tình huống sau:

  • Các công cụ và framework: Các công cụ như trình phân tích mã nguồn, ORM (Object-Relational Mapping), serializer và deserializer thường sử dụng reflection để hoạt động động với các type.
  • Plugin và Extension: Reflection cho phép bạn load và sử dụng các plugin hoặc extension mà không cần biết trước thông tin về chúng.
  • Unit Testing: Các framework unit testing sử dụng reflection để tìm và gọi các phương thức test.

Ví dụ sử dụng Reflection:

csharp Copy
...
middle

middle

Gợi ý câu hỏi phỏng vấn

senior

Sự khác nhau giữa Dispose, DestructorFinalize trong C# là gì?

middle

Sự khác nhau giữa ""String.Empty trong C# là gì?

middle

Sự khác nhau giữa static method, static constructor với methodconstructor thông thường trong C# là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào