تحويل String.Empty إلى لا شيء/فارغ
سؤال
هل هناك وظيفة .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))