class AA { public object X { get; set; } public object Y { get; set; } } class Program { static void Main(string[] args) { AA a = new AA() { X=1}; a = new AA() { X=2}; a.Y = a; Console.Write(a.X); AA c = (AA)a.Y; Console.WriteLine(c.X); Console.ReadKey(); } } 很奇怪运算不是从右到左吗。。。这样才是想的结果