3

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

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

我不想使用 if 的。我的意思是它可以但是如果我可以像这样调用我的函数会更好

MyFunction(txtTextbox.Text)

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

4

6 回答 6

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;
 }
于 2010-02-22T23:36:48.373 回答
3

嗯,在你的函数中接受一个应该读取整数的整数,然后在字符串上使用int.Parseor呢?int.TryParse

于 2010-02-22T23:37:57.920 回答
0

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

于 2010-02-22T23:45:15.817 回答
0

试试这个

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

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

它假定空字符串与 0 相同。

于 2010-02-23T00:03:44.117 回答
0

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

于 2010-02-23T00:42:27.940 回答
0

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

MyFunction(IIf(txtTextBox.Text Is Nothing, "", txtTextBox.Text))
于 2011-11-04T02:21:14.250 回答