سؤال

حيث أعمل ، غالبًا ما أرى كودًا كهذا:

public void Test(Models.User.UserInfo userInfo, Models.User.UserParameter param)
   { ... }

أنا شخصياً أفضل أن أرى شيئًا كهذا:

public void Test(UserInfo userInfo, UserParameter param) { ... }

ولديها استيراد في الأعلى.

ما هو رأيك حول هذا الموضوع ؟ ما هي أفضل الممارسات؟ ما مؤيد وسلبيات كليهما؟ كيف يمكنني إقناع زملائي في الفريق؟

أجد الخيار الثاني ليكون أكثر وضوحًا.

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

المحلول

بالتأكيد استخدم using التوجيه ، IMO. عادةً ما يكون هذا مجرد رمز تم تجنيده تلقائيًا بواسطة Visual Studio. لم أر أي شخص يكتب رمزًا عن عمد مثل هذا يدويًا. IMO يجدر التأكد من أن جميع التعليمات البرمجية التي سيقرأها البشر تبدو مثل البشر كتبها - لذلك سأضيف التوجيه باستخدام الأسماء هنا. يجعل القراءة أسهل بكثير - خاصة عندما تكون مساحات الأسماء طويلة.

نصائح أخرى

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

ولكن هذا يعتمد أيضا على طول الاسم الكامل. الأمر كله يتعلق بكتابة الكود الجميل والسهل قراءة الكود.

في جميع الظروف القليلة ، أقول ، import أو using مساحات الأسماء هي أفضل ممارسة. هذا له ميزة إضافية من التدهور المبكر: سوف يشكو المترجم إذا لم يتمكن من العثور على مساحة الاسم.

من بين الظروف القليلة التي يلزم فيها الاسم المؤهل بالكامل (ليكون أكثر صحة: ليس كذلك تماما مؤهل ، لا تحدد الإصدار أو المفتاح) حيث تحدث تصادمات الأسماء (أي: عندما تحدث مساحين أسماء نفس الاسم ، أرى أن هذا يحدث في كثير من الأحيان مع Util الفصول الدراسية التي يضيفها العديد من البائعين إلى libs) (لاحظ أنه يمكنك الاسم المستعار أسماء الفصول using). أو عندما تحتاج إلى تأهيل الاسم كسلسلة ، ولكن هذا هو حالة استخدام أخرى (أي ، مع الانعكاس). في بعض الأحيان ، أثناء تصحيح الأخطاء ، فإنه يساعد على استخدام FQN ، لأن مصحح الأخطاء لا يسمح بإضافة أ using التوجيه.

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

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