2015-05-05 2 views
-2

Я делаю программу, которая оценивает использование энергии. У меня есть список устройств и создал класс для них:Назначение переменных спискам - C#

List<Appliances> appliancesList = new List<Appliances>  
     { 
      new Appliances("Toaster",6000, durationInput), 
      new Appliances("Washing Machine",7000,durationInput), 
     }; 

class Appliances 
{ 
    public String name; 
    public int energy_rating; 
    public int duration; 
    public Appliances(String nameInput, int energy_ratingInput, int durationInput) 
    { 
     name = nameInput; 
     energy_rating = energy_ratingInput; 
     duration = durationInput; 
    } 

private void textBox1_TextChanged(object sender, EventArgs e) 
    { 
     durationInput = int.Parse(textBox1.Text); 
    } 

Как вы можете видеть в классе, я попытался создать переменную, которая позволяет пользователю вводить длительность, а затем присвоить это значение соответствующее устройство в списке. Я получаю красную строку под «durationInput» в разделе списка, и ошибка говорит: «Имя durationInput не существует в текущем контексте»

Любые идеи?

+4

Ошибка полностью верна. Вы имеете в виду «продолжительность»? – SLaks

+0

Я не знаю, к сожалению. Это помощь, которую я ищу –

+3

Вы не знаете, что вы пытаетесь сделать? И они платят вам за это? – MatteoSp

ответ

0

изменение durationInput = int.Parse(textBox1.Text); в this.duration = int.Parse(textBox1.Text);

0

Ваш конструктор принимает 3 параметра.

public Appliances(String nameInput, int energy_ratingInput, int durationInput) 

В вашей инструкции по списку вы передаете только две переменные.

new Appliances("Washing Machine",durationInput) 

Вам нужно либо пройти три переменные

new Appliances("Washing Machine",0,durationInput) 

или перегружать конструктор.

+0

Спасибо, но это не проблема, это была просто опечатка. Если вы посмотрите на вышесказанное для тостера, будут переданы 3 переменных. Ошибка все еще происходит. –

+0

Если это так, где вы объявляете свою переменную durationInput? – PrestonM

+0

Мне сказали объявить «продолжительность», вместо этого я изменил это. Я просто пытаюсь присвоить содержимое текстового поля переменной в списке. Поэтому вам необязательно ссылаться на мой точный код, если это помогает, я просто ищу теорию –

2

Вы должны указывать продолжительность. Durationinput - ваш параметр. Единственное, что вы должны делать с durationinput, это установить длительность переменной равной длительности. Все остальное должно быть ссылкой на продолжительность.