http://tech.bbtune.com/csharp/items/3-18.html

インスタンスHelloをintに型のするまではわかるんですが
すでに値が設定されているローカル変数にクラスのインスタンスを代入することの意味がわかりません
Console.WriteLine("i = {0}",i); i++;はどういう経緯でYの値が無視されてXの値が代入されてるんですか?
明示的なキャストでreturn h.x;はどこに代入されてるのかもわかりません。
どなたか教えてください。宜しくお願いします。