将 String.Empty 转换为 Nothing/Null

问题描述 投票:0回答:6

是否有 .Net 函数可以做到这一点。我想如果没有的话我必须制定自己的方法。

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

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

MyFunction(txtTextbox.Text) 

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

.net string integer textbox
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;
}

3
投票

嗯,在应该读取整数的函数中接受一个整数,并预先在字符串上使用

int.Parse
int.TryParse
怎么样?


0
投票

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


0
投票

试试这个

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

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

假设空字符串与 0 相同。


0
投票

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


0
投票

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

MyFunction(IIf(txtTextBox.Text Is Nothing, "", txtTextBox.Text))
© www.soinside.com 2019 - 2024. All rights reserved.