وظيفة الحمولة الزائدة مقابل المعلمات الافتراضية في VB.NET؟

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

  •  08-07-2019
  •  | 
  •  

سؤال

في VB.NET، وهو أفضل لاستخدام: وظيفة الحمولة الزائدة أو تقصير المعلمات

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

المحلول

هل رمز على وشك أن يستخدم من قبل لغات أخرى؟ إذا كان الأمر كذلك، أن يتأرجح ميزان نحو الزائدة في حين لا تزال تحمل الجواب هاميش في الاعتبار. على وجه الخصوص، لا C # لا يدعم المعلمات الاختيارية - بعد ...

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

وإذا كان هناك الكثير من المعلمات وأنها تمثل منطقيا شيء، قد ترغب في النظر في التغليف معا، في بنفس الطريقة التي Process يعمل مع ProcessStartInfo. هذا هو لطيف للغاية من C # بسبب الاعتراض المهيآت.

وإذا كان هذا هو البناء، قد تنظر أيضا في نمط البناء كما البديل من هذا. على سبيل المثال، في بروتوكول المخازن أستطيع أن أفعل شيئا مثل:

Person jon = new Person.Builder { Name="Jon", Age=32,
                                  Spouse="Holly", Kids=3 }.Build();

والذي ينتهي به الأمر جدا للقراءة في حين لا يزال خلق شخص دفعة واحدة (في تعبير واحد، ودون الحاجة إلى يتحور الشخص نفسه - في الواقع نوع الرسالة غير قابل للتغيير، بل فقط باني وهو لا).

نصائح أخرى

وإذا كانت المعلمات اختيارية (أي أن الزائدة هي مجموعة فرعية من المعلمات التي يقبل التوقيع الإجراء الكامل) ثم التقصير أو أن المعلمات الاختيارية أكثر منطقية.

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

ومعلوماتك

إذا كنت ترغب في إضافة معلمة إلى وظيفة أو الطريقة التي يتم استدعاؤها من المجالس الأخرى، ثم:

ويمكنك الزائد بجعل وظيفة إضافية مع معلمة إضافية.

وأو يمكنك إضافة مقياس اختياري، ولكن: لديك إلى إعادة ترجمة كل من التجميعات التي استدعاء هذه الدالة، حتى لو أنها لا تحتاج إلى استخدام المعلمة اختيارية جديدة! هذه ليست عادة ما يتوقع الناس (مصممة خصيصا تلك التي تستخدم لكيفية عمل VB6). في الأساس، لا يمكن أن تنزلق في معلمة اختيارية جديدة لوظيفة، ونتوقع أن يكون تماما معكوس متوافق. أيضا، كما أفهمها، إذا قمت بتغيير ما هي القيمة الافتراضية، تحتاج إلى إعادة بناء جميع الجمعيات التي تدعو إلى التغيير إلى العمل.

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