لماذا تقوم دالة VB.Net التي ترجع السلسلة بإرجاع حرف واحد فقط؟

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

  •  02-07-2019
  •  | 
  •  

سؤال

أنا أقوم باستدعاء دالة تقوم بإرجاع سلسلة، ولكنها في الواقع تُرجع فقط الحرف الأول من السلسلة التي من المفترض أن تُرجعها.

إليك نموذجًا من التعليمات البرمجية لإعادة إنشاء المشكلة التي أواجهها:

Public Function GetSomeStringValue(Value as Integer) As String
    ... Code Goes here
    Return Some_Multicharacter_string
End Function

يبدو استدعاء الوظيفة كما يلي:

SomeStringValue = GetSomeStringValue(Value)

لماذا لا يقوم هذا بإرجاع السلسلة بأكملها؟

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

المحلول

ملحوظة:تمت كتابة هذه الإجابة في الأصل بواسطة OP، Kibbee، كإجابة ذاتية.ومع ذلك، فقد تم كتابته في متن السؤال، وليس كإجابة منفصلة فعلية.نظرًا لأن OP رفض الطلبات المتكررة من قبل مستخدمين آخرين، بما في ذلك المشرف، لإعادة النشر وفقًا لقواعد الموقع، فأنا أعيد نشره بنفسي.

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

في مرحلة ما عندما كنت أعيد بناء الكود، قمت بتغيير الوظيفة للتخلص من معلمة القيمة، وتركتها كما يلي:

Public Function GetSomeStringValue() As String
    ... Code Goes here
    Return Some_Multicharacter_String
End Function

ومع ذلك، فقد أهملت إزالة المعلمة التي كنت أمررها عند استدعاء الوظيفة:

SomeStringValue = GetSomeStringValue(Value)

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

لذلك قمت بإزالة المعلمة، وكل شيء سار على ما يرام:

SomeStringValue = GetSomeStringValue()

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

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