هل هناك أي طريقة للتخلص من قائمة الاستخدامات الطويلة الموجودة أعلى ملفات .cs الخاصة بي؟

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

سؤال

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

مع ما يزيد عن 17 سطرًا من الاستخدامات في ملفات اختبار التكامل الخاصة بي، أصبح الأمر فوضويًا تمامًا.هل يعرف أحد ما إذا كانت هناك طريقة لتحديد ماكرو لقاعدتي باستخدام البيانات؟هل هناك حلول أخرى؟

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

المحلول

يستمتع بعض الأشخاص بإخفاء الاستخدامات في ملف #region.خلاف ذلك، أعتقد أنك لم يحالفك الحظ.إلا إذا كنت تريد وضع مساحة الاسم على جميع المراجع الخاصة بك.

نصائح أخرى

أعلم أنه لا ينبغي لي أن أقول هذا بصوت عالٍ، لكن ربما أعيد النظر في تصميمك.

17 استخدامًا في ملف واحد = عدد كبير من الاقترانات (على مستوى مساحة الاسم).

لا أستطيع تحمل Resharper بنفسي.لكنني أيضًا لا أستطيع تحمل الفوضى في استخدام العبارات.انا استعمل ال أوامر الطاقة الوظيفة الإضافية لـ VS، والتي تحتوي على أمر "إزالة وفرز" سهل الاستخدام باستخدام أمر البيانات (من بين الأشياء الجيدة الأخرى).

هناك أربع مشاكل محتملة هنا؛

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

using MyCompany.Drawing.Vector.Points;
using MyCompany.Drawing.Vector.Shapes;
using MyCompany.Drawing.Vector.Transformations;

النظر في طيها إلى واحد MyCompany.Drawing.Vector مساحة الاسم.ربما لا تربح من خلال تقسيم الكثير.يحتوي Visual Studio Code Analysis/FxCop على قاعدة لهذا الغرض، وهي التحقق من عدد الفئات في مساحة الاسم.قليل جدًا وسوف يحذرك.

أنت تضع عددًا كبيرًا جدًا من الاختبارات في نفس الفصل. إذا كنت مرجعا System.Data, System.Drawing, ، و System.IO في نفس الفصل، فكر في كتابة المزيد من الاختبارات الذرية - بعضها يصل إلى قواعد البيانات، وبعضها يرسم صورًا، وبعضها يصل إلى نظام الملفات.ثم قم بتقسيم كل نوع عبر ثلاث فئات اختبار.

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

الكثير منها زائدة عن الحاجة. هل تم استخدامها جميعًا أم أنها مجرد نسخ ولصق من ملفات أخرى.انقر بزر الماوس الأيمن على محرر التعليمات البرمجية واختر من خيارات "تنظيم الاستخدام" لإزالة البيانات غير المستخدمة.

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

هل تقصد أن مساحات الأسماء التي تستخدمها غالبًا تتم إضافتها تلقائيًا إلى كل فئة جديدة؟إذا كانت الإجابة بنعم، فيمكن لبرنامج Resharper القيام بذلك أيضًا.بالإضافة إلى أنه يحتوي على ميزة لوضع الاستخدامات في منطقة ما لتنظيف التعليمات البرمجية.قد يكون Resharper هو الحل الأمثل (لن تندم عليه كما أستطيع أن أقول من تجربتي الخاصة).

أضاف VS2008 قائمة سياق "تنظيم الاستخدامات"، والتي تحتوي على خيار فرز وإزالة و"إزالة وفرز" والذي سيفعل ما تريده لكل ملف.تضيف الوظيفة الإضافية Visual Studio Power Commands قائمة سياقات في مستكشف الحلول للمشاريع والحلول وهي عبارة عن "إزالة وفرز" لجميع الملفات في المشروع وجميع المشاريع في الحل، على التوالي.

إذا كنت تريد تغيير الإعداد الافتراضي باستخدام العبارات التي يتم إجراؤها عند إنشاء ملف جديد، فقم بإلقاء نظرة على الدليل C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033.يحتوي على مجموعة من الملفات المضغوطة التي يمكنك تعديلها لتغيير قوالب ملفات التعليمات البرمجية (من الواضح أن تقوم بتحريك بنية الدليل لأعلى لتغيير اللغات الأخرى أو أنواع الملفات الأخرى).

يرى هنا للمزيد من المعلومات.

قد يكون من المفيد استخدام الأسماء المستعارة.لست متأكدًا من أن الأمر يستحق ذلك، ولكن بدلاً من ذلك:

using System.Web.UI;
using System.Web.Mail;
using System.Web.Security;
... Control ...
... MailMessage ...
... Roles ... 

يمكنك استخدام:

using W = System.Web;
... W.UI.Control ...
... W.Mail.MailMessage ...
... W.Security.Rolse ...

يحتوي Resharper - الوظيفة الإضافية لـ Visual Studio - على ميزة تزيل استخدامات غير مستخدمة من ملف، لكنني لا أعرف أي شيء يفعل تمامًا ما تصفه.

في VS2008، يمكنك النقر بزر الماوس الأيمن على ملف CS واختيار "تنظيم الاستخدامات".سوف يقوم بتجريد الاستخدام غير المستخدم وفرزها لك أيضًا.بخلاف ذلك، أود فقط استخدام #region.أيضًا، كنترول+م+يا سوف ينهار جميع وظائف المناطق الخاصة بك، وما إلى ذلك في وقت التصميم.أستخدم هذا الاختصار كثيرًا!

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