title: C#: An object reference is required for the non-static field, method, or Property
body: <p>I feel bad for asking this when there are so many questions that are related but I was not able to find/understand the answer I am looking for.</p>
  
  <p>// 2. Develop a program to convert currency X to currency Y and visa versa.</p>
  
  <pre><code>using System;
  
  class Problem2
  {
      static void Main (string[] args)
      {
          while (true) {
              Console.WriteLine ("1. Currency Conversion from CAD to Won");
              Console.WriteLine ("2. Currency Conversion from Won to Cad");
              Console.Write ("Choose from the Following: (1 or 2)? ");
              int option = int.Parse( Console.ReadLine() );
              //double x;
              if (option == 1) {
                  Console.WriteLine ("Type in the amount you would like to Convert CAD to Won: ");
                  //double y =double.Parse( Console.ReadLine());
                  //Console.WriteLine( cadToWon( y ) );
                  Console.WriteLine( cadToWon( double.Parse( Console.ReadLine() ) ));
              }
              if (option == 2) {
                  Console.WriteLine ("Type in the amount you would like to Convert Won to CAD: ");
                  Console.WriteLine( wonToCad (double.Parse( Console.ReadLine())));
              }
          }
      }
  
      double cadToWon( double x )
      {
          return x * 1113.26;
      }
  
      double wonToCad( double x)
      {
          return x / 1113.26;
      }
  }
  </code></pre>
  
  <p>This give me the Error messgae "An object reference is required for the non-static field, method, or property 'Problem2..." I know that I'll be able to run the program if I add static infront of the methods but I'm wondering why I need it (I think it's because Main is static?) and what do I need to change in order to use these methods without adding static to them?</p>
  
  <p>Thank you</p>