title: Error "An object reference is required for the non-static field, method or property 'QuickSharp.CokeMachine.TotalInsertedCoins'"
body: <p>I get the following error when compiling:</p>
  
  <blockquote>
    <p>CS0120: An object reference is required for the non-static field, method or property 'QuickSharp.CokeMachine.TotalInsertedCoins'</p>
  </blockquote>
  
  <p>This is because I'm trying to use the TotalInsertedCoins variable from another class (CokeForm). How can I fix this? If I want to add the buttons in my CokeForm method, I'm getting the same issue.</p>
  
  <p>My code:</p>
  
  <pre><code>using System;
  using System.Windows.Forms;
  using System.Drawing;
  
  namespace QuickSharp
  {
      public class CokeMachine
      {
          Button Coke;
          Button Sprite;
          Button Fanta;
          Button RedBull;
          Button Juice;
          Button Water;
  
          double CokeCost = 1.00;
          double SpriteCost = 1.00;
          double FantaCost = 1.00;
          double RedBullCost = 2.50;
          double JuiceCost = 2.00;
          double WaterCost = 0.50;
  
          Button Coin1;
          Button Coin2;
          Button Coin3;
          Button Coin4;
          Button Coin5;
          Button Coin6;
  
          double CoinAmount1 = 0.05;
          double CoinAmount2 = 0.10;
          double CoinAmount3 = 0.20;
          double CoinAmount4 = 0.50;
          double CoinAmount5 = 1.00;
          double CoinAmount6 = 2.00;
  
          public double TotalInsertedCoins = 0;
  
          //EventHandlers for drink buttons
  
          public void DrinkButtonsEvents()
          {
              Coke.Click += new EventHandler(Coke_ClickHandler);
              Sprite.Click += new EventHandler(Sprite_ClickHandler);
              Fanta.Click += new EventHandler(Fanta_ClickHandler);
              RedBull.Click += new EventHandler(RedBull_ClickHandler);
              Juice.Click += new EventHandler(Juice_ClickHandler);
              Water.Click += new EventHandler(Water_ClickHandler);
          }
  
          //Drink buttons - Click event handlers
  
          public void Coke_ClickHandler(object sender, EventArgs e)
          {
              if(TotalInsertedCoins &gt;= CokeCost)
              {
                  DispenseDrink("Coca-Cola", CokeCost);
              }
              else
              {
                  MessageBox.Show("You have not inserted enough money to buy this drink.", "Warning");
              }
          }
  
          public void Sprite_ClickHandler(object sender, EventArgs e)
          {
              if(TotalInsertedCoins &gt;= SpriteCost)
              {
                  DispenseDrink("Sprite", SpriteCost);
              }
              else
              {
                  MessageBox.Show("You have not inserted enough money to buy this drink.", "Warning");
              }
          }
  
          public void Fanta_ClickHandler(object sender, EventArgs e)
          {
              if(TotalInsertedCoins &gt;= FantaCost)
              {
                  DispenseDrink("Fanta", FantaCost);
              }
              else
              {
                  MessageBox.Show("You have not inserted enough money to buy this drink.", "Warning");
              }
          }
  
          public void RedBull_ClickHandler(object sender, EventArgs e)
          {
              if(TotalInsertedCoins &gt;= RedBullCost)
              {
                  DispenseDrink("Red Bull", RedBullCost);
              }
              else
              {
                  MessageBox.Show("You have not inserted enough money to buy this drink.", "Warning");
              }
          }
  
          public void Juice_ClickHandler(object sender, EventArgs e)
          {
              if(TotalInsertedCoins &gt;= JuiceCost)
              {
                  DispenseDrink("Orange Juice", JuiceCost);
              }
              else
              {
                  MessageBox.Show("You have not inserted enough money to buy this drink.", "Warning");
              }
          }
  
          public void Water_ClickHandler(object sender, EventArgs e)
          {
              if(TotalInsertedCoins &gt;= WaterCost)
              {
                  DispenseDrink("Water", WaterCost);
              }
              else
              {
                  MessageBox.Show("You have not inserted enough money to buy this drink.", "Warning");
              }
          }
  
          //EventHandlers for money buttons
  
          public void MoneyButtonEvents()
          {
              Coin1.Click += new EventHandler(Coin1_ClickHandler);
              Coin2.Click += new EventHandler(Coin2_ClickHandler);
              Coin3.Click += new EventHandler(Coin3_ClickHandler);
              Coin4.Click += new EventHandler(Coin4_ClickHandler);
              Coin5.Click += new EventHandler(Coin5_ClickHandler);
              Coin6.Click += new EventHandler(Coin6_ClickHandler);
          }
  
          //Money buttons - Click event handlers
  
          public void Coin1_ClickHandler(object sender, EventArgs e)
          {
              TotalInsertedCoins += CoinAmount1;
          }
  
          public void Coin2_ClickHandler(object sender, EventArgs e)
          {
              TotalInsertedCoins += CoinAmount2;
          }
  
          public void Coin3_ClickHandler(object sender, EventArgs e)
          {
              TotalInsertedCoins += CoinAmount3;
          }
  
          public void Coin4_ClickHandler(object sender, EventArgs e)
          {
              TotalInsertedCoins += CoinAmount4;
          }
  
          public void Coin5_ClickHandler(object sender, EventArgs e)
          {
              TotalInsertedCoins += CoinAmount5;
          }
  
          public void Coin6_ClickHandler(object sender, EventArgs e)
          {
              TotalInsertedCoins += CoinAmount6;
          }
  
          private void DispenseDrink(string drink , double cost)
          {
              if(TotalInsertedCoins - cost == 0.0)
              {
                  MessageBox.Show("Enjoy your " + drink + "!");
                  TotalInsertedCoins = 0.0;
              }
              else
              {
                  MessageBox.Show("Enjoy your " + drink + "! Here is your change: €" + (TotalInsertedCoins - cost));
                  TotalInsertedCoins = 0.0;
              }
          }
      }
  
      public class CokeForm : Form
      {
         public CokeForm()
         {
              // General aspect of machine
  
              this.Text = "Cola Machine";
              this.Size = new Size(450, 500);
  
              Label Header;
              Header = new Label();
              Header.Text = "Coca-Cola Machine";
              Header.Font = new Font("Arial", Header.Font.Size + 5);
              Header.ForeColor = Color.DarkRed;
              Header.Location = new Point(132, 20);
              Header.AutoSize = true;
              this.Controls.Add(Header);
  
              TextBox TextBox1 ;
              TextBox1 = new TextBox();
              TextBox1.BackColor = Color.Black;
              TextBox1.ForeColor = Color.Red;
              TextBox1.Font = new Font("Arial", TextBox1.Font.Size + 3);
              TextBox1.ReadOnly = true;
              TextBox1.Size = new Size(210, 300);
              TextBox1.Location = new Point(112, 50);
  
              //TextBox1.SelectionStart = TextBox1.Text.Length;
              //TextBox1.ScrollToCaret();
              //TextBox1.Refresh();
  
  
              if(CokeMachine.TotalInsertedCoins == 0.00)
              {
                  TextBox1.Text = "Buy Your Ice Cold Drinks Here!";
              }
              else
              {
                  TextBox1.Text = "Inserted Coins: €" + CokeMachine.TotalInsertedCoins;
              }
  
              this.Controls.Add(TextBox1);
  
              // Money aspect of machine
  
              Label Money;
              Money = new Label();
              Money.Text = "Insert Coins Here:";
              Money.Location = new Point(20, 100);
              this.Controls.Add(Money);
  
              //Money buttons will be here
  
  
              // Drink aspect of machine
  
              Label Drinks;
              Drinks = new Label();
              Drinks.Text = "Choose Your Drink:";
              Drinks.Location = new Point(315, 100);
              Drinks.AutoSize = true;
              this.Controls.Add(Drinks);
  
              //Drink buttons will be here
         }
      }
  
      public class Test
      {
          public static void Main()
          {
              CokeForm ColaForm;
              ColaForm = new CokeForm();
              Application.Run(ColaForm);
          }
      }
  }
  </code></pre>
  
  <p>How do I fix this problem? Other questions about the CS0120 error don't bring me any further.</p>