مشاركة عبر


انعكاس (C# و Visual Basic)

يوفر انعكاس الكائنات (من نوع Type) التي تصف التجميعات و الوحدات النمطية و الأنواع. يمكنك إستخدام الانعكاس لتنشئ و بشكل حيوي مثيل لنوع أو تربط النوع إلى كائن موجود أو الحصول على النوع من كائن موجود و استدعاء الأساليب الخاصة به أو الوصول إلى حقوله وخصائصه. في حالة إستخدامك السمات في التعليمات البرمجية الخاصة بك, فإن الإنعكاس يمكنك من الوصول إليهم. لمزيد من المعلومات، راجع لتوسيع بيانات التعريف باستخدام السمات.

وفيما يلي مثال بسيط على الانعكاس بإستخدام أسلوب ثابت GetType- موروث بواسطة كل أنواع إسناد فئةObjectللحصول على نوع متغير:

' Using GetType to obtain type information:
Dim i As Integer = 42
Dim type As System.Type = i.GetType()
System.Console.WriteLine(type)
// Using GetType to obtain type information:
int i = 42;
System.Type type = i.GetType();
System.Console.WriteLine(type);

الناتج هو:

System.Int32

يستخدم المثال التالي انعكاس للحصول على الاسم الكامل للتجميع المحمل.

' Using Reflection to get information from an Assembly:
Dim info As System.Reflection.Assembly = GetType(System.Int32).Assembly
System.Console.WriteLine(info)
// Using Reflection to get information from an Assembly:
System.Reflection.Assembly info = typeof(System.Int32).Assembly;
System.Console.WriteLine(info);

الناتج هو:

mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

ملاحظة

الكلمات الأساسية ل #C protected و internalلا معنى لها في IL و غير مستخدمة في انعكاس واجهات برمجة التطبيقات (APIs). شروط المطابقة في IL هي العائلة و التجميع . لتعريف خاصيةinternalبإستخدام الانعكاس, إستخدم الأسلوب IsAssembly. لتعريف أسلوب protected internalإستخدم IsFamilyOrAssembly.

نظرة عامة حول الانعكاس

الإنعكاس مفيد في الحالات التالية:

الأقسام ذات الصلة

لمزيد من المعلومات:

راجع أيضًا:

المرجع

مجالات التطبيق (C# و Visual Basic)

المبادئ

دليل البرمجة لـ #C

التجميعات في وقت تشغيل اللغة العامة

موارد أخرى

دليل البرمجة Visual Basic