سؤال

كنت أتحقق من بعض التعليمات البرمجية لإطار العمل (طريقة System.AppDomain.GetDynamicDir) وكان هذا هو كل ما أظهره المجمع:

[MethodImpl(MethodImplOptions.InternalCall)]
private extern string GetDynamicDir();

ماذا يحدث عندما يتم استدعاء هذه الطريقة؟لا أقصد هذه الطريقة بالتحديد، ولكن الأساليب التي تحتوي على هذه السمة بشكل عام.

هل كانت مفيدة؟

المحلول

MSDN :

<اقتباس فقرة>   

على MethodImplOptions.InternalCall : في تحديد داخلي   مكالمة. مكالمة داخلية هي دعوة ل   طريقة التي يتم تنفيذها داخل   وقت تشغيل اللغة العامة نفسها.

وذلك في الأساس، يوفر CLR تنفيذه الخاصة لهذا الأسلوب (الذي هو على الارجح في التعليمات البرمجية الأصلية)، والذي هو السبب في أنك لا يمكن أن نرى ذلك في المجمع.

نصائح أخرى

إجابة هنا :

(...) MethodImplOptions.InternalCall يستخدم بالاقتران مع Extern لمعرفة وقت التشغيل أن الطريقة يتم تنفيذها داخليًا داخل النظام نفسه.يتم ذلك للعديد من أساليب إطار عمل Core .NET التي يتم تقديمها بشكل أفضل عن طريق تنفيذها في رمز غير مُدارة.على سبيل المثال ، العديد من الأساليب على String, GC, ، ويتم تمييز دروس الرياضيات على أنها InternalCall.كما لاحظتم، Guid.CompleteGuid هو أيضا InternalCall.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top