您能解释一下此代码产生此结果的原因吗?
var person = new { name = "George", age = 30};
WriteLine(person);
输出是:
{ name = "George", age = 30}
答案 0 :(得分:3)
WriteLine(object)
隐式调用底层对象上的ToString()
。该方法是虚拟的,这意味着它可以被派生类型覆盖。
匿名类型覆盖object.ToString
以显示其属性和值。编译器生成重写的方法,它不能在编译时或运行时更改。