是否有 .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
或 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))