ما الفرق بين RuntimeTypeHandle و النوع ؟
-
09-06-2019 - |
سؤال
و لماذا يمكنني استخدام واحدة على الأخرى في قانون بلدي ؟
المحلول
تنبيه:هذا الجواب يظهر من التاريخ. وقد نشرت من قبل .صافي 4 أصبحت متاحة ، التي على ما يبدو أدخلت بعض التحسينات فيما يتعلق
Type
وبالتالي تقديم المعلومات في هذا الجواب عفا عليها الزمن.انظر هذه الأخيرة أكثر الإجابة للحصول على التفاصيل.
وفقا هذا بلوق وظيفة (من 2006) من قبل فانس موريسون, RuntimeTypeHandle
هو نوع القيمة (struct
) التي يلتف غير مدارة مؤشر لذلك Type.GetTypeHandle(obj).Equals(anotherHandle)
أسرع إلى استخدام الصارم "هو بالضبط نفس النوع" مقارنات من obj.GetType().Equals(anotherType)
— يخلق هذا الأخير System.Type
الحالات التي يبدو أثقل.
ومع ذلك ، كما أنها أقل وضوحا, و بالتأكيد يندرج تحت فئة "الصغرى الأمثل" حتى إذا كنت أتساءل عندما كنت في حاجة واحد على الآخر ، ربما يجب عليك فقط استخدام النظام.نوع.
نصائح أخرى
في .NET 4.0 بيتا 1 RuntimeTypeHandle
فقط يلتف RuntimeType
.يبدو أن جميع فوائد استخدام أنها رخيصة Type
الوكيل قد ذهب.
الأدلة على المطالبة المذكورة أعلاه:
- مايكروسوفت مرجع مصدر
System.RuntimeTypeHandle
نوع يدل على أن هذا النوع هو في الواقع إلا التفاف حولSystem.RuntimeType
هذه الأيام. - ساندرو المجوس 2013 بلوق المادة "CLR:تكلفة نوع الديناميكي الاختبارات"
يحتوي على مؤشر ملاحظة أخيرة تبين أن من المفترض أداء فوائد
RuntimeTypeHandle
ولت في .صافي 4.