Phản ánh trong C# là gì? Chúng ta sử dụng khái niệm này trong các ứng dụng của chúng ta ở đâu?Phản ánh trong C# là gì? Chúng ta sử dụng khái niệm này trong ứng dụng của mình ở đâu?
Trả lời
Phản ánh cung cấp các đối tượng (loại Type) đóng gói các cụm, mô-đun và loại. Bạn có thể sử dụng sự phản chiếu để tạo động một thể hiện của một kiểu, liên kết kiểu với một đối tượng hiện có, hoặc lấy kiểu từ một đối tượng hiện có và gọi các phương thức của nó hoặc truy cập các trường và thuộc tính của nó. Nếu bạn đang sử dụng thuộc tính trong mã của bạn, phản xạ cho phép bạn truy cập chúng ...
Để tham khảo, MSDN article on reflection và Dự án Luật có reflection khá tốt giải thích ..
Ví dụ, có một cái nhìn tại C# Reflection Examples.
nơi chúng tôi sử dụng này? U có thể cho tôi ứng dụng đó không ?? – HITESH
@Hitesh Bạn có thể sử dụng nó với các hội đồng ... Bài viết có một số ví dụ hay ... –
tôi nghĩ rằng nên đặt * COURTESY * –
Từ documentation:
Reflection cung cấp các đối tượng (kiểu Type) mà đóng gói lắp ráp, module và các loại. Bạn có thể sử dụng phản chiếu để tự động tạo một thể hiện loại, liên kết loại đối tượng hiện có hoặc nhận loại từ đối tượng hiện có và gọi phương thức hoặc truy cập vào các trường và thuộc tính . Nếu bạn đang sử dụng các thuộc tính trong mã của mình, hãy phản ánh cho phép bạn truy cập chúng. Để biết thêm thông tin , hãy xem Thuộc tính.
Wikipedia nói điều này:
Trong khoa học máy tính, phản ánh là quá trình mà theo đó một chương trình máy tính có thể quan sát và sửa đổi cấu trúc và hành vi của chính mình. Mô hình lập trình được điều khiển bởi sự phản ánh được gọi là lập trình phản chiếu . Nó là một loại cụ thể của metaprogramming.
Ví dụ, nếu bạn muốn lập trình hiển thị tất cả các phương pháp của một lớp, bạn có thể làm điều đó như vậy:
using System;
using System.Reflection;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var t = typeof(MyClass);
foreach (var m in t.GetMethods())
{
Console.WriteLine(m.Name);
}
Console.ReadLine();
}
}
public class MyClass
{
public int Add(int x, int y)
{
return x + y;
}
public int Subtract(int x, int y)
{
return x - y;
}
}
}
nơi chúng tôi sử dụng ? u có thể cho tôi ứng dụng đó không ?? – HITESH
@HITESH Tôi đã thêm một ví dụ. –
Bạn có câu trả lời ở trên phản xạ là gì, một số trường hợp tôi đã sử dụng nó trong quá khứ:
- một phương pháp chung chung mà mất trong một danh sách các thuộc tính và bản sao những tài sản trong một đối tượng khác
- một phương pháp sử dụng mô tả để nhận văn bản cho enum, tương tự như this
Cũng xem this article để biết ví dụ về phản ánh, liên kết thêm ở cuối trang.
cảm ơn vì đã cho tôi liên kết như vậy, nhưng 1 câu hỏi là khi chúng tôi thêm làm không gian tên trong trang .cs đơn giản hoặc một số trang khác? plz nói với tôi điều đó? – HITESH
Xin lỗi, tôi không chắc ý bạn là gì. Không gian tên để phản chiếu là System.Reflection. Ý bạn là vậy đúng không? – Fermin
Một cách sử dụng sự phản chiếu bạn sẽ tìm thấy trong các khung công tác: để thực hiện một chức năng cụ thể (trong khuôn khổ đó), một số lớp được sử dụng. Nhưng lớp chính xác không được biết ở thời gian biên dịch, thay vào đó nó được cấu hình trong một số tệp văn bản, như tên lớp (thường bao gồm cả assembly).Sử dụng sự phản chiếu, bạn có thể lấy chuỗi này và tạo một thể hiện của lớp đó.
- 1. Khái niệm đằng sau R.java là gì?
- 2. Vai trò của libc (glibc) trong ứng dụng linux của chúng ta là gì?
- 3. Phản ánh. Những gì chúng ta có thể đạt được bằng cách sử dụng nó?
- 4. Khái niệm swimlane trong YouTrack là gì?
- 5. Khái niệm chụp nhanh trong phi tiêu là gì?
- 6. Khái niệm về Array.map là gì?
- 7. Chúng ta sử dụng toán tử đối tượng "->" trong PHP ở đâu?
- 8. Ở đâu và tại sao chúng ta sử dụng __toString() trong PHP?
- 9. Phản ánh trong ứng dụng Windows 8
- 10. Tài liệu khái niệm C++ sử dụng doxygen?
- 11. Chúng ta gọi điều này là gì?
- 12. Khái niệm về một hội trong .NET là gì?
- 13. Ext.namespace là gì, chúng ta nên sử dụng chúng như thế nào?
- 14. Khái niệm sủi bọt là gì?
- 15. Các khái niệm git của HEAD, master, origin là gì?
- 16. Mô-đun khái niệm cho C++
- 17. Khái niệm cơ bản đằng sau WaitHandle là gì?
- 18. MasterPage như khái niệm trong python
- 19. Có khái niệm nào trong C++ giống như phản xạ trong .Net không?
- 20. Các trình tạo bóng trong OpenGL là gì và chúng ta cần chúng làm gì?
- 21. Phản ánh trong C++
- 22. Ý nghĩa của khái niệm serialization trong ngôn ngữ lập trình là gì?
- 23. Khái niệm chung đằng sau XSS là gì?
- 24. Tôi tìm máy chủ tên trong ứng dụng Heroku của mình ở đâu?
- 25. OpenCV và Computer Vision, chúng ta đang đứng ở đâu?
- 26. Ở đâu/khi nào chúng tôi sử dụng JSON?
- 27. Tôi nên xác định ứng dụng khách MySQL của mình ở đâu trong ứng dụng Node.js (Express)?
- 28. Ứng dụng iOS không võng mạc và hình ảnh võng mạc khái niệm
- 29. thư mục ứng dụng của tôi ở đâu trong Android?
- 30. Macro Scala, chúng được sử dụng ở đâu?
Lần truy cập đầu tiên không quá tệ: http://www.google.com/search?q=what+is+reflection+in+c%23+%3F+where+we+use+this+concept + trong + + ứng dụng của chúng tôi% 3F –
Tôi mơ hay tiêu đề của câu hỏi dài hơn câu hỏi? – ereOn
@ 0xA3: Tôi chắc chắn rằng phản ứng đầu gối của chúng tôi đối với một người nào đó hỏi câu hỏi giới thiệu về StackOverflow không phải là "tự mình sử dụng Google" hoặc "RTFM". –