-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 に答える