将String.Empty转换为Nothing / Null

时间:2010-02-22 23:34:00

标签: .net string textbox integer nothing

是否有.Net功能可以做到这一点。我想如果没有,我必须自己制作方法。

事情是我有一个功能。它接受整数。如果传递0整数或空值,它仍然有效。问题是空文本框的值是String.Empty值。

我不想使用if。我的意思是它可以,但如果我能像这样调用我的功能那就更好了

MyFunction(txtTextbox.Text)

但它不起作用,因为它无法将string.empty转换为整数。

6 个答案:

答案 0 :(得分:4)

我想你需要:

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;
 }

答案 1 :(得分:3)

怎么样,嗯,接受函数中应该读取整数的整数,并事先在字符串上使用int.Parseint.TryParse

答案 2 :(得分:0)

从不同的角度来看,我假设您的文本框也需要只允许输入数字。否则只是处理null不会成为输入非数字的人的防弹。必须有一些掩码,事件处理程序或为其创建的验证。如何使用您已有的输入限制行为创建自己继承自TextBox的NumTextBox,并覆盖Text属性或创建新属性调用Value,它会查看所有转换并在整个系统中一致地返回相应的值。

答案 3 :(得分:0)

试试这个

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

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

假设空字符串与0相同。

答案 4 :(得分:0)

您是否考虑过使用NumericUpDown(旋转控件)?它有一个.Value成员(总是一个有效的Integer!),而不必从String转换。您可以限制上限值和下限值,也可以设置默认值。

答案 5 :(得分:0)

我只想使用内联IF语句(VB):

MyFunction(IIf(txtTextBox.Text Is Nothing, "", txtTextBox.Text))