title: Assign value to one property change another property value
body: <p>Please need some clarification on the below.
  Also if you don't mind some C# low level explanation and/or books on the matter please.</p>
  <p>Why after assigning value to <strong>secondDog.breed</strong> property (3rd line), both properties got the same value (firstDog.Breed and secondDog.Breed).</p>
  <p>Seems like only secondDog that is supposed to display &quot;Labrador&quot;, not firstDog !!</p>
  <pre><code>    static void Main(string[] args)
      {
          var firstDog = new Dog() { Breed = &quot;Bulldog&quot; };
          var secondDog = firstDog;
  
          secondDog.Breed = &quot;Labrador&quot;;   // Magic happens here !!!
  
          Console.WriteLine(firstDog.Breed);      // Labrador (why ???)
          Console.WriteLine(secondDog.Breed);     // Labrador
      }
      
      class Dog
      {
          public string Breed { get; set; }
      }
  </code></pre>
  <p>Why on the below code I get different result than on the above code (Dog example)</p>
  <pre><code>int num = 5;
  int numb = num;
  
  numb = 30;
  
  Console.WriteLine(num);    // 5  (Not 30 like in the above Dog example)
  Console.WriteLine(numb);   // 30
  </code></pre>