سؤال

هل هناك وظيفة .NET تفعل ذلك. أظن أنه إذا لم يكن عليّ أن أجعل طريقتي الخاصة.

الشيء هو لدي وظيفة. يقبل الأعداد الصحيحة. إذا قمت بتمرير عدد صحيح 0 أو قيمة فارغة لا تزال تعمل. المشكلة هي أن قيمة مربع النص الفارغ هي سلسلة.

لا أريد استخدام IF. أعني أنه يمكن أن يكون ذلك أجمل بكثير إذا كان بإمكاني استدعاء وظيفتي مثل هذه

MyFunction (txttextbox.text)

لكنه لن ينجح لأنه لا يمكن تحويل السلسلة. empty إلى عدد صحيح.

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

المحلول

أعتقد أنك بحاجة:

if(string.IsNullOrEmpty(value)) value = null;

أو

int MyFunction(string value)
 {
      if(string.IsNullOrEmpty(value)) return 0;

      int val = 0;
      int.TryParse(value, out val);
      return val;
 }

نصائح أخرى

ماذا عن ، أم ، قبول عدد صحيح في وظيفتك التي يجب أن تقرأ الأعداد الصحيحة ، والاستخدام int.Parse أو int.TryParse على السلسلة مسبقا؟

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

جرب هذا

   Sub MyFunction(ByVal Param1Integer as Integer)
     ' Do Something
   End Sub

   Sub MyFunction(ByVal Param1String as String)
     MyFunction(Val(Param1String))
   End Sub

يفترض أن السلسلة الفارغة هي نفسها 0.

هل بحثت في استخدام أ Numericupdown (السيطرة على الدوران)؟ يحتوي على عضو. value (دائمًا عددًا صحيحًا صحيحًا!) بدلاً من الاضطرار إلى التحويل من سلسلة. يمكنك الحد من القيم العلوية والسفلية ، وكذلك تعيين الافتراضي.

أود فقط استخدام بيان IF IF (VB):

MyFunction(IIf(txtTextBox.Text Is Nothing, "", txtTextBox.Text))
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top