سؤال

لقد قمت بتشغيل أداة تحليل التعليمات البرمجية VS 2008 على كائن قمت بإنشائه وتلقيت الاقتراح التالي ...

تحذير 147 CA1021:Microsoft.design:فكر في التصميم الذي لا يتطلب أن يكون "ReturnValue" معلمة خارج.

أجد أن معلمات "out" مفيدة إلى حد ما ولم أدرك أنها تعتبر ممارسة تصميمية مرفوضة.أردت أن أعرف ما إذا كان بإمكان أي شخص إلقاء بعض الضوء على سبب تلقيي هذا التحذير؟إذا كانت ممارسة سيئة؟لماذا ؟وما هي الممارسة الجيدة؟

وأنا أقدر أي نصيحة.

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

المحلول

يحتوي كل تحذير من تحذيرات تحليل التعليمات البرمجية على وثائق مرتبطة يمكنك الوصول إليها عن طريق تمييز التحذير والضغط عليه F1.يمكنك أيضًا النقر بزر الماوس الأيمن على العنصر للحصول على المساعدة.

على أية حال، هنا الوثائق التي تشرح هذا التحذير بالذات.

أود أن أقول إن هناك حالات قليلة لا تزال فيها المعلمات الخارجية خيارًا جيدًا - خاصة عندما يتعلق الأمر بمصطلح الترميز TryParse، لأنها طريقة راسخة للقيام بالأشياء التي من المفترض أن يفهمها معظم الناس

ومع ذلك، في الاستخدام العام، هناك حلول أفضل وأكثر توجهاً للكائنات لقيم الإرجاع المتعددة.

نصائح أخرى

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

لحالتك. إذا كان لديك فقط المعلمة عودة واحدة، ثم العودة مرة أخرى للخروج من وظيفة.

إذا كان لديك أيضا رمز الإرجاع التي تحتل المرتبة المقابل، النظر في استخدام الاستثناءات لإعلام رمز المتصل من الأخطاء العملية.

إذا كان لديك العديد من المعلمات للعودة التي ترتبط بشكل وثيق مع بعضها البعض، وجعل فئة / هيكل لتحميلهم معا وإعادته كما حزمة.

والعديد من قانون تحذيرات تحليل يبدو لي أن تكون ذات صلة كتابة التعليمات البرمجية API التي سيستخدمها 3rd الأطراف. القاعدة مع المعلمات 'خارج' هو حالة كلاسيكية: جزء من سبب لعدم استخدامها لأن الكثير من المبرمجين الآخرين لن نعرف عنها

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

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

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

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