-5

显示每个数组元素 1 到 9 但不显示第 10 和第 11 个元素的消息框?为什么我无法达到第 10 个和第 11 个元素,我也尝试用富文本框做,但我再也看不到

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    int i;
    int[] array1 = new array1[11];
    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        try
        {
            array1[i] = int.Parse(textBox1.Text) % 10;
            MessageBox.Show(dizi[i].ToString());
        }
        catch
        {
            if (i > 11)
            {
                //MessageBox.Show("it can't be big than 11");
            }
        }
        i++;
    }
}
4

3 回答 3

2

i == 10,您将看到数组的第 11 个元素。那是因为数组索引以 开头0,所以i01011或更高的数字会给你一个例外。我建议您在尝试访问数组之前检查它。像这样:

if (i < 11) {       // or if (i < dizi.Length)
    try
    {
        dizi[i] = int.Parse(textBox1.Text);
        MessageBox.Show(dizi[i].ToString());
        i++;
    }
    catch (Exception ex) 
    {
        // You can still get errors if the text cannot be parsed to an int 
    }
}
于 2012-06-25T12:36:06.237 回答
1

是的,您已经得到了答案,但是确实要小心变量限制。

Type        Size (in bits)       Range
 -----           --------            ----------
sbyte           8               -128 to 127
byte            8                0 to 255
short           16              -32768 to 32767
ushort          16               0 to 65535
int                 32              -2147483648 to 2147483647
uint            3                    0 to 4294967295
long            64                  -9223372036854775808 to 9223372036854775807
ulong           64               0 to 18446744073709551615
char            16               0 to 65535 
float           32               7 digits 1.5 x 10-45 to 3.4 x 1038
Double              64               15-16 digits 5.0 x 10-324 to 1.7 x 10308
Decimal         128              28-29 decimal places 1.0 x 10-28 to 7.9 x 1028
于 2012-07-19T07:42:59.650 回答
0

an 的最大值int是 2147483647,因此如果您输入任何大于该值的数字,int.Parse()都会静默失败。正如其他人所提到的,没有第 11 个元素。

于 2012-06-25T12:37:02.213 回答