Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7613067
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T02:04:38+00:00 2026-05-31T02:04:38+00:00

I get the following error when compiling: CS0120: An object reference is required for

  • 0

I get the following error when compiling:

CS0120: An object reference is required for the non-static field, method or property ‘QuickSharp.CokeMachine.TotalInsertedCoins’

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.

My 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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);
        }
    }
}

How do I fix this problem? Other questions about the CS0120 error don’t bring me any further.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-31T02:04:38+00:00Added an answer on May 31, 2026 at 2:04 am

    You never create an instance of CokeMachine:

    if(CokeMachine.TotalInsertedCoins == 0.00)
    {
      TextBox1.Text = "Buy Your Ice Cold Drinks Here!";
    }
    else
    {
      TextBox1.Text = "Inserted Coins: €" + CokeMachine.TotalInsertedCoins;
    }
    

    Create an instance of CokeMachine in the form, and then use that.

    ...
    CokeMachine machine = new CokeMachine();
    ...
    
    if (machine.TotalInstertedCoins == 0.00)
    {
     ....
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I get the following error compiling with make (I have cygwin.dll) *** Couldn't reserve
I get the following error when compiling my app. warning: class 'ConfigureViewController' does not
I get the following error message (reduced to the important part) when I'm compiling
When compiling this code I get the following error : In function 'int main()':
Why do I get the following error? Unsafe code may only appear if compiling
When compiling the code below, I get the following error: PersonalInformation is not abstract
I get the following error pretty regularly when compiling in Visual Studio and running
I get the following error when compiling a simple C# console app from MSDN
I get the following error when compiling the std::find_if function: error C2451: conditional expression
I get the following error message when compiling: 2011-11-27 14:59:32.049 Storyboard[12104:f803] -[TargetViewController setPeople:]:unrecognized selector

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.