لفهم كيفية فحص ما إذا كان الإدخال فارغًا أو يحتوي على قيمة عددية في الفيجوال بيسك بشكل صحيح، يجب التحقق من نوع البيانات للمتغير input
. في الشفرة التي قدمتها، يُفترض أن input
هو من نوع String
، ولكنك تحاول تنفيذ عمليات رياضية عليه كما لو كان من نوع Integer
، وهذا هو سبب الخطأ الذي تواجهه.
إذا كنت ترغب في فحص ما إذا كان الإدخال فارغًا أو يحتوي على قيمة عددية، يمكنك استخدام الشرط التالي:
vbIf Not String.IsNullOrEmpty(input) AndAlso IsNumeric(input) Then
Dim inputValue As Integer = Integer.Parse(input)
If inputValue <= 100 AndAlso inputValue > 0 Then
subjectsInt.Add(subjects(i), inputValue)
check = True
End If
End If
في هذا الكود، نقوم بفحص إذا كانت السلسلة input
غير فارغة أو Null
باستخدام String.IsNullOrEmpty(input)
، ومن ثم نستخدم IsNumeric(input)
للتأكد من أن القيمة يمكن تحويلها إلى رقم صحيح. إذا تم اجتياز هذين الشرطين، نقوم بتحويل القيمة إلى Integer
باستخدام Integer.Parse(input)
ومن ثم نقوم بفحص إذا كانت تنطبق الشروط المحددة.
المزيد من المعلومات
بالتأكيد! في الشفرة التي قدمتها، تقوم بالتحقق مما إذا كانت السلسلة input
غير فارغة ويمكن تحويل قيمتها إلى رقم صحيح. إذا كانت هذه الشروط تتحقق، تقوم بإضافة القيمة المحولة إلى الرقم الصحيح subjectsInt
كقيمة مقابل المفتاح subjects(i)
، وتعيد True
كقيمة للمتغير check
.
من الجيد أن تقوم بفحص ما إذا كانت السلسلة غير فارغة قبل تحويلها، وهذا ما تفعله باستخدام String.IsNullOrEmpty(input)
، حيث يعود True
إذا كانت السلسلة فارغة أو Null
، و False
إذا كانت تحتوي على قيمة.
يتم تحقيق هذا باستخدام AndAlso
بدلاً من And
لتجنب تقييم الشرط الثاني (IsNumeric(input)
) إذا كان الشرط الأول (Not String.IsNullOrEmpty(input)
) غير صحيح. هذا يساعد في تجنب الأخطاء المحتملة التي قد تحدث عند محاولة تحويل قيمة فارغة أو Null
إلى رقم صحيح.
أخيرًا، يجب أن تتأكد من أن قيمة السلسلة يمكن تحويلها إلى رقم صحيح باستخدام IsNumeric(input)
قبل استخدام Integer.Parse(input)
، وهذا يحمي البرنامج من حدوث أخطاء تحويل.