title: Does an int field have a default of 0?
body: <p>I have a Console app with the following code:</p>
  
  <pre><code>    using System;
  
      namespace HeadfirstPage210bill
      {
          class Program
          {
              static void Main(string[] args)
              {
                  CableBill myBill = new CableBill(4);
                  Console.WriteLine(myBill.iGotChanged);
                  Console.WriteLine(myBill.CalculateAmount(7).ToString("£##,#0.00"));
                  Console.WriteLine("Press enter to exit");
                  Console.WriteLine(myBill.iGotChanged);
                  Console.Read();
              }
          }
      }
  </code></pre>
  
  <p>The class CableBill.cs is the following:</p>
  
  <pre><code>    using System;
  
      namespace HeadfirstPage210bill
      {
          class CableBill
          {
              private int rentalFee;
              public CableBill(int rentalFee) {
                  iGotChanged = 0;
                  this.rentalFee = rentalFee;
                  discount = false;
              }
  
              public int iGotChanged = 0;
  
  
              private int payPerViewDiscount;
              private bool discount;
              public bool Discount {
                  set {
                      discount = value;
                      if (discount) {
                          payPerViewDiscount = 2;
                          iGotChanged = 1;
                      } else {
                          payPerViewDiscount = 0;
                          iGotChanged = 2;
                      }
                  }
              }
  
              public int CalculateAmount(int payPerViewMoviesOrdered) {
                  return (rentalFee - payPerViewDiscount) * payPerViewMoviesOrdered;
              }
  
          }
      }
  </code></pre>
  
  <p>The console is returning the following:</p>
  
  <p><img src="https://i.stack.imgur.com/WSDuy.png" alt="enter image description here"></p>
  
  <p>What I can not see is when <code>payPerViewDiscount</code> is set to 0. Surely this can only happen when the Discount property is set but if the property Discount is called then the variable <code>iGotChanged</code> should be returning 1 or 2, but it seems to stay on 0. Because it is type <code>int</code> is there a default value for <code>payPerViewDiscount</code> of 0? </p>