我在动态创建的网格视图中有一个文本框.我们可以作为文本访问用户输入,但是如何检查文本是整数类型还是字符串类型?
if (tx.Text == "")
{
tx.Text = Convert.ToString(0);
}
if (Convert.ToInt32(tx.Text) > max)
{
MessageBox.Show("Some Message", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
tx.Text = Convert.ToString(max);
}
Run Code Online (Sandbox Code Playgroud)
tx是我们通过其访问用户输入的文本框tx.Text.
如何检查输入参数的类型是否为整数?
你正在寻找这种TryParse方法.这将告诉您是否可以将给定的字符串值转换为数字.它可以做到这一切而不会抛出任何异常.
示例代码:
int number;
bool result = Int32.TryParse(tx.Text, out number);
if (result)
{
// Conversion to a number was successful.
// The number variable contains your value.
}
else
{
// Conversion to a number failed.
// The value entered in the textbox is not numeric.
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您希望限制文本框的输入范围(即,阻止用户输入除数字之外的任何内容),这不是正确的方法.
相反,您应该使用不同的控件,例如NumericUpDown控件或MaskedTextBox控件.这些允许您防止用户首先输入无效输入,这比事后显示错误更加用户友好.
回应你的评论:
在java中你有instanceof关键字来检查对象类型.例如: - Obj instanceof Integer ...如何在C#中检查对象类型
C#有typeof关键字,但这不会对你有所帮助.问题是,您正在检查的对象是类型的实例String.该类的Text属性始终返回一个类型的对象.这不是VB 6:这里没有.您要检查的是该值是否可以转换为等效的积分表示.TextBoxStringVariantsString
| 归档时间: |
|
| 查看次数: |
7007 次 |
| 最近记录: |