2015-06-21 2 views
-3

я получаю ошибкухххх Не существует в этом текущем контексте

«XXXX не существует в этом текущем контексте».

Я знаю, что есть много подобных вопросов, но они мне не помогают, так как я не очень хорош на C# & asp.net. Я боролся с этим куском кода. В основном мне нужно иметь расчетную стоимость (что среднее значение должно быть сделано в классе Beverage, и оно выводится на странице About. Мой код очень грязный, так как я честно не знаю, что я делаю.

напитки класс:

public class Beverage 
    { 
     string fruit; 
     int kg; 
     int cost; 
     int cal; 

     public string getOutputString() 
     { 
      return " Your selected Beverage is made of " + kg + " of " + fruit + ". " + 
      "The cost is £ " + cost + " and has " + cal + "."; 
     } 

     public static int CalculatePrice() 
     { 
      int cost = (TextBox1.text + TextBox2.text); 
      int cal = TextBox1.Text + TextBox3.Text; 
     } 

    } 

О коде позади:

public partial class About : Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      MyFruit = Session["Fruitname"] as List<string>; //Create new, if null 
      if (MyFruit == null) 
      MyFruit = new List<string>(); 
      DropDownList1.DataSource = MyFruit; 
      DropDownList1.DataBind(); 
     } 

     protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
     { 

     } 

     protected void Button1_Click(object sender, EventArgs e) 
     { 
      { 
       decimal total = calculatePrice(DropDownList1.SelectedItem.Text, 
               TextBox1.Text.Trim()); 

       lbl1.Text = "You would like " + TextBox1.Text.Trim() + 
        DropDownList1.SelectedItem.Text + "(s) for a total of $" + 
        total.ToString(); 
      } 

     } 
      public List<string> MyFruit { get; set; } 

    } 

ошибки всегда для TextBox1, TextBox2, TextBox3 & calculatePrice.

+0

Вы не можете получить доступ к полям экземпляра в статическом методе. Либо сделайте поля статическими, либо удалите модификатор 'static' в методе. – CodesInChaos

+0

Я не вижу, чтобы подписи метода 'CalculatePrice' совпадали в обоих классах. Перегрузки также нет. Я думаю, вы должны назвать 'Beverage.CalculatePrice()' в событии Button1_Click. –

ответ

1

Вы получаете сообщение об ошибке, поскольку пытаетесь получить доступ к TextBox1.Text за пределами About. Только этот класс будет иметь доступ к этим свойствам, поскольку он наследует System.Web.UI.Page. TextBox1.Text не имеет своих возможностей в классе Beverage. Если вы хотите использовать эти значения в этом классе, передайте их в качестве входных параметров для метода.

Смежные вопросы