lundi 21 mars 2016

Unreachable code FOR

I have this code and I want to improve it. I want to delete the goto

string NameOfFile = tbOpenFile.Text;

FileStream ReadStream = new FileStream(NameOfFile, FileMode.Open, FileAccess.ReadWrite);

StreamReader r_Read = new StreamReader(ReadStream);
i = 1;
lb1.Items.Clear();

for (; ; i++)
{
    tbOpenFile.Text = r_Read.ReadLine();
    lines[i] = tbOpenFile.Text;

    lb1.Items.Add(lines[i]);

    if (r_Read.EndOfStream.Equals(true)) 
       goto next;
}

next:
{
    textBox2.Text = r_Read.EndOfStream.ToString();
    ReadStream.Close();
}

I've tried to do like this using if

string NameOfFile = tbOpenFile.Text;
FileStream ReadStream = new FileStream(NameOfFile, FileMode.Open, FileAccess.ReadWrite);

StreamReader r_Read = new StreamReader(ReadStream);
i = 1;

lb1.Items.Clear();

for (; ; i++)
{
    tbOpenFile.Text = r_Read.ReadLine();
    lines[i] = tbOpenFile.Text;

    lb1.Items.Add(lines[i]);

    if (r_Read.EndOfStream.Equals(true)) 
    {
        textBox2.Text = r_Read.EndOfStream.ToString();
        ReadStream.Close();
    }
}

and like try like this using while

string NameOfFile = tbOpenFile.Text;
FileStream ReadStream = new FileStream(NameOfFile, FileMode.Open, FileAccess.ReadWrite);

StreamReader r_Read = new StreamReader(ReadStream);
i = 1;

lb1.Items.Clear();

while(r_Read.EndOfStream.Equals(true))
{
    for (; ; i++)
    {
        tbOpenFile.Text = r_Read.ReadLine();
        lines[i] = tbOpenFile.Text;

        lb1.Items.Add(lines[i]);
    }

    continue;

    textBox2.Text = r_Read.EndOfStream.ToString();
    ReadStream.Close();
}

but I always get an error

unreachable code

Aucun commentaire:

Enregistrer un commentaire