是否有.Net功能可以做到这一点。我想如果没有,我必须自己制作方法。
事情是我有一个功能。它接受整数。如果传递0整数或空值,它仍然有效。问题是空文本框的值是String.Empty值。
我不想使用if。我的意思是它可以,但如果我能像这样调用我的功能那就更好了
MyFunction(txtTextbox.Text)
但它不起作用,因为它无法将string.empty转换为整数。
答案 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.Parse
或int.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))