查看我用文本框的textchanged事件包围的代码:
string testString = comboIPAddress.Text;
string[] parts = testString.Split('.');
int? ipclass = int.Parse(parts[0]);
if (ipclass == null)
{
//do nothing
}
if (ipclass >= 1 && ipclass <= 126)
{
comboSubnet.Text = "255.0.0.0";
}
if (ipclass >= 192 && ipclass <= 223)
{
comboSubnet.Text = "255.255.255.0";
}
if (ipclass >= 128 && ipclass <= 191)
{
comboSubnet.Text = "255.255.0.0";
}
else
{
comboSubnet.Text = "";
}
当我从IPAddress组合框中删除所有内容时执行exe,它会给出错误(输入字符串的格式不正确。)。我不知道将int与null进行比较的另一种方法。请帮忙。
答案 0 :(得分:3)
使用不可为空的int
并检查是否可以int.TryParse()
解析...
int ipclass;
if (!int.TryParse(parts[0], out ipclass))
{
//do nothing
}
答案 1 :(得分:1)
您是否考虑过使用MaskedTextBox作为IP?然后,您可以使用System.Net.IPAddress Parse method轻松解析输入 如SO answer所示。
答案 2 :(得分:0)
在尝试拆分之前,您应该先测试if(!string.IsNullOrEmpty(testString))
,然后再调整int.TryParse