如果用户在 textBox1 中输入的字母少于三个,我将如何防止出现 IndexOutOfRange 错误?
只需检查使用temp.Length
:
if (temp.Length > 0)
{
...
}
...或使用switch
/ case
。
此外,您根本不需要数组。只需调用ToString
每个字符,或使用Substring
:
string temp = textBox1.Text;
switch (temp.Length)
{
case 0:
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
break;
case 1:
// Via the indexer...
textBox2.Text = temp[0].ToString();
textBox3.Text = "";
textBox4.Text = "";
break;
case 2:
// Via Substring
textBox2.Text = temp.Substring(0, 1);
textBox3.Text = temp.Substring(1, 1);
textBox4.Text = "";
break;
default:
textBox2.Text = temp.Substring(0, 1);
textBox3.Text = temp.Substring(1, 1);
textBox4.Text = temp.Substring(2, 1);
break;
}
另一种选择——甚至更简洁——是使用条件运算符:
string temp = textBox1.Text;
textBox2.Text = temp.Length < 1 ? "" : temp.Substring(0, 1);
textBox3.Text = temp.Length < 2 ? "" : temp.Substring(1, 1);
textBox4.Text = temp.Length < 3 ? "" : temp.Substring(2, 1);