التحسس الذكي في Visual Studio 2005 بين C# وVB - لا يمكن الانتقال إلى التعريفات

StackOverflow https://stackoverflow.com/questions/63517

سؤال

لقد أذهلتني حقيقة أن MS لم يتمكن من الانتقال بشكل صحيح إلى تعريف الطريقة، عندما تجمع بين مشاريع C# وVB في حل واحد.إذا كنت تحاول الانتقال من VB إلى C#، فإنه يعرض "Object Explorer"، وإذا كنت تحاول الانتقال من C# إلى VB، فإنه يقوم بإنشاء ملف بيانات التعريف.

بصراحة، ما الأمر المعقد في التنقل بين اللغات المختلفة، خاصة إذا كان من المفترض أنهم يستخدمون نفس CLR؟

هل يعرف أحد سبب ذلك، أو إذا كان هناك أي حل بديل؟هل فهموا الأمر بشكل صحيح في VS 2008؟


@ كيث ، أخشى أنك قد تكون على حق بشأن إجابتك.أنا مندهش حقًا لأن Microsoft أفسدت هذا الأمر بشدة.هل لدى أي شخص أي أفكار للحل البديل؟


@ ملادين ميهايلوفيتش - هذا هو بالضبط الوضع الذي أصفه.جربه بنفسك؛مراجع المشروع لا تحدث أي فرق.

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

المحلول

وهذا عام في اللغتين.

  • يأخذك F12 في VB.Net دائمًا إلى متصفح الكائنات
  • يأخذك F12 في C# دائمًا إلى تعريف البيانات الوصفية

هذه آلية متعمدة لمحاولة مطابقة السلوك المتوقع لترقية المستخدمين.تمنحك طريقة C# المعلومات الصحيحة، ولكن طريقة VB هي ما يتوقعه مستخدمو VBA أو VB6.

السلوك هو نفسه في VS2008.

هذه هي قواعد المشاريع الخارجية، وكلاهما يجب أن يأخذك إلى الكود إذا كان في نفس الحل.


أنت على حق تمامًا - تتعامل مشاريع VB مع مشاريع C# على أنها مشاريع خارجية والعكس صحيح - لا يمكنك التنقل من التعليمات البرمجية في واحدة إلى أخرى.لقد اختبرت هذا في الإصدار الأحدث VS2008 وما زالت مشكلة.

كما أنه يفشل في الحصول على البيانات الوصفية الكاملة.أضف طريقة إلى كود C# الخاص بك ولن تظهر في التحسس الذكي لـ VB حتى تقوم بتجميع تجميع C#.

يشبه هذا كيفية ظهور المكونات في شريط الأدوات، لذلك أعتقد أن وظيفة التنقل إلى التعليمات البرمجية العادية هي إحدى ميزات التعليمات البرمجية مع المترجمين المشتركين، وكل شيء آخر يستخدم نوعًا من الانعكاس.

طالما أنك لا تزال تقوم بإنشاء PDB، فمن المفترض أن تتمكن من العثور على الملفات، أعتقد أن ذلك لا يحدث لأنهم يحتاجون إليها لدعم عمليات إنشاء الإصدار أيضًا.لم يتمكن من العثور على سطر التعليمات البرمجية بدون عمليات بحث PDB.

نصائح أخرى

تأكد من أن مرجعك هو VB مشروع وليس مجرد ملف DLL.

إنها مسألة معروفة, ، الحل هما:يستخدم ctrl+, أو استخدم بعض المكونات الإضافية التي تضيف هذه الوظيفة، مثل resharper (الذي سيضيف هذه الوظيفة في ملف F12).

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