是否有 .Net 功能可以做到这一点。我想如果没有我必须制作自己的方法。
问题是我有一个功能。它接受整数。如果您传递 0 整数或空值,它仍然有效。问题是空文本框的值是 String.Empty 值。
我不想使用 if 的。我的意思是它可以但是如果我可以像这样调用我的函数会更好
MyFunction(txtTextbox.Text)
但它不起作用,因为它无法将 string.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
or呢?int.TryParse
只是从不同的角度来看,我假设您的文本框也需要只允许输入数字。否则,仅处理 null 不会对输入非数字的人提供防弹。您必须为它创建一些掩码、事件处理程序或验证。如何创建您自己的 NumTextBox,它继承自 TextBox 并具有您已经拥有的输入限制行为,并覆盖 Text 属性或创建一个新的属性调用 Value 来处理所有转换并在整个系统中一致地返回适当的值。
试试这个
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 语句(VB):
MyFunction(IIf(txtTextBox.Text Is Nothing, "", txtTextBox.Text))