【问题标题】:validating user input using Try/Parse?使用 Try/Parse 验证用户输入?
【发布时间】:2015-02-06 14:52:30
【问题描述】:
if (!char.TryParse(txtCustomerName.Text, out charCustomerName))  //try to read in Layers from TextBox
{
    MessageBox.Show("Customer Name must be entered.", "Invalid Customer Name");
    return;
}

if (!Decimal.TryParse(txtAmountOwed.Text, out decAmountOwed))  //try to read in Layers from TextBox
{
    MessageBox.Show("Amount Owed must be entered without dollar signs or commas.", "Invalid Amount Owed");
    return;
}

if (!int.TryParse(txtDaysOverdue.Text, out intDaysOverdue))  //try to read in Layers from TextBox
{
    MessageBox.Show("Days Overdue must be entered as a whole number.", "Invalid Days Overdue");
    return;
}

当我运行程序时,它告诉我必须输入客户名称,即使我输入了它。我该如何改变?

【问题讨论】:

  • 只是好奇,你为什么要使用char.TryParse?这将尝试将字符串(文本)解析为 char 类型,这是单个字符。
  • 您正试图从一串字符中解析出单个字符。你真的不需要!string.IsNullOrEmpty(txtCustomerName.Text)吗?
  • 安德烈,IsNullOrWhiteSpace 更好

标签: c# tryparse


【解决方案1】:

替换

if (!char.TryParse(txtCustomerName.Text, out charCustomerName)) 

if (String.IsNullOrEmpty(txtCustomerName.Text)) 

char 只代表一个字符

【讨论】:

  • 使用 IsNullOrWhiteSpace
  • @L33TS - 在他的情况下,空格可能是一个有效的用户名 - 他没有在他的问题中定义它
  • 为什么空字符串无效呢?他从未指定空字符串也无效,但通常空格或空字符串对名称永远无效。
  • String.IsNullOrEmpty 表示:没有输入任何内容。我只想说用户名的验证是另一个问题
  • 空白也不算什么。" ", "\t" 等都是空白字符,对客户名称(不是您指定的用户名)无效。除此之外,@987654324 @ 还检查空字符串。通常使用起来更安全。引入IsNullOrWhiteSpace 是有原因的;仅仅是因为通常当您使用空字符串时,您也不会使用空格。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 2014-05-26
  • 2016-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多