Как получить данные из Streamreader в новый класс - PullRequest
1 голос
/ 30 мая 2011

Мне нужно прочитать данные из текстового файла через steamreader, затем переместить эту информацию в другой класс (я назвал ее info) и, наконец, переместить ее в текстовое поле. Я не уверен, что я делаю это правильно, я новичок в этом. Я получаю сообщение об ошибке: «work2.info не содержит конструктор, который принимает 2 аргумента» Итак, вот код, который я должен прочитать в

    private void openToolStripMenuItem1_Click(object sender, EventArgs e)
    {

        Stream myStream = null;
        OpenFileDialog openFileDialog1 = new OpenFileDialog();

        openFileDialog1.InitialDirectory = "c:\\";
        openFileDialog1.Filter = "text files (*.txt)|*txt";
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            if ((myStream = openFileDialog1.OpenFile()) != null)
            {
                StreamReader data = new StreamReader(myStream);

               string newinfo = data.ReadLine();
              string oldinfo = data.ReadLine();
                info pepinfo = new info(newinfo, oldinfo);
               pepinfo.newinfo = textBox1.Text;
               pepinfo.oldinfo = textBox2.Text;

Класс, в который я хочу поместить данные:

public class info
{

    public string newinfo
    {

    }
    public string oldinfo
    {
    }
}

Ответы [ 2 ]

2 голосов
/ 30 мая 2011

В указанном вами коде нет конструктора, который принимает 2 аргумента.
Ваш класс может выглядеть следующим образом:

public class Info
{
    public string NewInfo { get; private set; }

    public string OldInfo { get; private set; }

    public Info(string newInfo, string oldInfo)
    {
        NewInfo = newInfo;
        OldInfo = oldInfo;
    }
}
0 голосов
/ 30 мая 2011

Ваша проблема в том, что у вашего класса (информации) нет конструктора, который получает oldinfo и newinfo и заполняет нужные данные. Два варианта для изменения:

private void openToolStripMenuItem1_Click(object sender, EventArgs e)
    {

        Stream myStream = null;
        OpenFileDialog openFileDialog1 = new OpenFileDialog();

        openFileDialog1.InitialDirectory = "c:\\";
        openFileDialog1.Filter = "text files (*.txt)|*txt";
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            if ((myStream = openFileDialog1.OpenFile()) != null)
            {
                StreamReader data = new StreamReader(myStream);

               string newinfo = data.ReadLine();
              string oldinfo = data.ReadLine();
                info pepinfo = new info();
               pepinfo.newinfo = newinfo;
               pepinfo.oldinfo = oldinfo;

При желании вы можете изменить свой информационный класс, добавив конструктор, который получает два аргумента, например, ответ от Алекса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...