C# 如何检查数据类型
我在网格视图中动态创建了一个文本框。我们可以以文本形式访问用户输入,但如何检查文本是整数类型还是字符串类型C# 如何检查数据类型,c#,textbox,C#,Textbox,我在网格视图中动态创建了一个文本框。我们可以以文本形式访问用户输入,但如何检查文本是整数类型还是字符串类型 if (tx.Text == "") { tx.Text = Convert.ToString(0); } if (Convert.ToInt32(tx.Text) > max) { MessageBox.Show("Some Message", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
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);
}
tx
是通过tx.Text
访问用户输入的文本框如何检查输入参数的类型是否为整数
int intNumber;
bool result=int.TryParse(txt.Text, out intNumber)
如果字符串(文本框值)包含非数字字符,或者对于指定的特定类型,数值太大或太小,则TryParse返回false并将out参数设置为零。否则,它将返回true并将out参数设置为字符串的数值
以下是msdn链接和示例:
如果字符串(文本框值)包含非数字字符,或者对于指定的特定类型,数值太大或太小,则TryParse返回false并将out参数设置为零。否则,它将返回true并将out参数设置为字符串的数值
下面是msdn链接,其中有一个示例:您正在查找的。这将告诉您给定的字符串值是否可以转换为数字。它做到了这一切,没有抛出任何异常
示例代码:
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.
}
但是,如果您希望限制文本框的输入范围(即,防止用户输入除数字以外的任何内容),这不是正确的方法
相反,您应该使用不同的控件,例如,或。这些允许您首先防止用户输入无效输入,这比事后显示错误更方便用户
针对你的评论:
在java中,您有instanceof关键字来检查对象类型。例如:-Obj instanceof Integer…如何在C中检查对象类型# C#有
类型的
关键字,但这对你没有帮助。问题是,您正在检查的对象是String
类型的实例。TextBox
类的Text
属性始终返回类型为String
的对象。这不是VB6:这里没有变体。您要检查的是该字符串
值是否可以转换为等效的整数表示形式。您正在查找。这将告诉您给定的字符串值是否可以转换为数字。它做到了这一切,没有抛出任何异常
示例代码:
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.
}
但是,如果您希望限制文本框的输入范围(即,防止用户输入除数字以外的任何内容),这不是正确的方法
相反,您应该使用不同的控件,例如,或。这些允许您首先防止用户输入无效输入,这比事后显示错误更方便用户
针对你的评论:
在java中,您有instanceof关键字来检查对象类型。例如:-Obj instanceof Integer…如何在C中检查对象类型#
C#有类型的
关键字,但这对你没有帮助。问题是,您正在检查的对象是String
类型的实例。TextBox
类的Text
属性始终返回类型为String
的对象。这不是VB6:这里没有变体。您要检查的是该字符串
值是否可以转换为等效的整数表示形式。我使用以下方法:
private dataType ParseString(string str)
{
bool boolValue;
Int32 intValue;
Int64 bigintValue;
decimal doubleValue;
DateTime dateValue;
// Place checks higher in if-else statement to give higher priority to type.
if (bool.TryParse(str, out boolValue))
return "System_Boolean";
else if (Int32.TryParse(str, out intValue))
return "System_Int32";
else if (Int64.TryParse(str, out bigintValue))
return "System_Int64";
else if (decimal.TryParse(str, out doubleValue))
return "System_Decimal";
else if (DateTime.TryParse(str, out dateValue))
return "System_DateTime";
else return "System_String";
}
我用这个:
private dataType ParseString(string str)
{
bool boolValue;
Int32 intValue;
Int64 bigintValue;
decimal doubleValue;
DateTime dateValue;
// Place checks higher in if-else statement to give higher priority to type.
if (bool.TryParse(str, out boolValue))
return "System_Boolean";
else if (Int32.TryParse(str, out intValue))
return "System_Int32";
else if (Int64.TryParse(str, out bigintValue))
return "System_Int64";
else if (decimal.TryParse(str, out doubleValue))
return "System_Decimal";
else if (DateTime.TryParse(str, out dateValue))
return "System_DateTime";
else return "System_String";
}
我认为下面的方法更简单。您只需设置一个使用textBox检查操作的方法:
private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar >= '0') && (e.KeyChar <= '9'))
{
return;
}
if (Char.IsControl(e.KeyChar))
{
if (e.KeyChar == (char)Keys.Enter)
{
Button1.Focus ();
}
}
e.Handled = true;
}
private void TextBox\u按键(对象发送者,按键事件参数e)
{
如果((e.KeyChar>='0')&&(e.KeyChar),我认为以下方法更简单。您只需设置一个使用textBox检查操作的方法:
private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar >= '0') && (e.KeyChar <= '9'))
{
return;
}
if (Char.IsControl(e.KeyChar))
{
if (e.KeyChar == (char)Keys.Enter)
{
Button1.Focus ();
}
}
e.Handled = true;
}
private void TextBox\u按键(对象发送者,按键事件参数e)
{
如果((e.KeyChar>='0')&&(e.KeyChar调查。这将告诉您字符串值是否可以转换为数字。在java中,您有instanceof关键字来检查对象类型。例如:-Obj instanceof Integer…如何在C中检查对象类型?调查。这将告诉您字符串值是否可以转换为数字。在java中,您有instanceof Integer要检查对象类型的关键字。例如:-Obj instanceof Integer…如何在C中检查对象类型#