我刚开始用C#编程。我正在尝试将字符串转换为int。像这样:
int.Parse(textBox1.Text);
当我输入一个值时,这工作正常,但是当没有输入任何内容时这会让我异常,我按下按钮。我该怎么办?有没有解决这个问题的功能?感谢
答案 0 :(得分:5)
使用int.TryParse
代替,如果解析失败,它不会抛出异常。
将数字的字符串表示形式转换为其等效的32位有符号整数。返回值表示转换是否成功。
int number;
bool isValid = int.TryParse(textBox1.Text, out number);
if(isValid)
{
// parsing was successful
}
答案 1 :(得分:0)
解决此问题的一种方法是使用int.tryParse()
而不是int.Parse()
。然后,您可以检查结果以查看输入的格式是否正确。
这是一个示例:
int userInput;
if(!int.TryParse(textBox1.Text, out userInput))
{
//error in input here
}
执行后,如果int.TryParse()返回true,那么userInput
变量中将有一个有效值。
或者你可以将它包装在try-catch中,但是如果可能的话,最好尝试解析并处理它而不会有异常。
答案 2 :(得分:0)
将以下代码放在您的按钮事件下。它将确保输入到文本框中的文本/数字能够转换为整数。此外,它将确保文本框中输入了数字/文本。
if (textBox1.Text != "")
{
try
{
Convert.ToInt32(textBox1.Text);
}
catch
{
/*
Characters were entered, thus the textbox's text cannon be converted into an integer.
Also, you can include this line of code to notify the user why the text is not being converted into a integer:
MessageBox.Show("Please enter only numbers in the textbox!", "PROGRAM NAME", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
*/
}
}
/*
else
{
MessageBox.Show("Please enter numbers in the textbox!", "PROGRAM NAME", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
*/
答案 3 :(得分:-1)
这很简单。您可以在按钮点击事件中执行此操作:
int number;
if (int.TryParse(textbox1.Text, out number))
{
// number is an int converted from string in textbox1.
// your code
}
else
{
//show error output to the user
}
答案 4 :(得分:-1)
Try below given solution
<script type="text/javascript">
function myFunction() {
alert('Please enter textbox value.');
}
</script>
And in the button click event use below given logic.
if (TextBox1.Text == "")
{
//Call javascript function using server side code.
ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "myFunction()", true);
}
else
{
int value;
value = int.Parse(TextBox1.Text);
}