有时候你可能需要定义类来封装一些数据,但并不需要任何方法、事件和其他自定义的功能。或者说你需要定义一个只是用于当前程序的临时类型,在这种情况下,匿名类型将会派上用场。请看下面的代码:
using System;
namespace Com.LoonStudio {
class Program {
static void Main() {
// 定义匿名类型
var car1 = new { Brand = "Benz", MaxSpeed = 200 };
var car2 = new { Brand = "Benz", MaxSpeed = 200 };
Console.WriteLine(car1.Equals(car2)); // true(基于值的语义进行比较)
Console.WriteLine(car1 == car2); // false
Console.WriteLine(car1.GetType() == car2.GetType()); // true
Console.WriteLine(car1.GetType().Name); // <>f__AnonymouseType0`2
Console.WriteLine(car1.ToString()); // { Brand = Benz, MaxSpeed = 200 }
// 包含匿名类型的匿名类型
var person = new {
Name = "Hao", RegDate = DateTime.Now,
Car = new {Brand = "Benz", MaxSpeed = 200}
};
Console.WriteLine(person.Car.Brand); // Benz
Console.WriteLine(person); // { Name = Hao, RegDate = 2013/12/6 23:12:17, Car = { Brand = Benz, MaxSpeed = 200 } }
}
}
}