/// <summary>
/// C# 1.0 中定义的产品类型
/// </summary>
public class Product1
{
string name;
public string Name { get { return name; } }
decimal price;
public decimal Price { get { return price; } }
public Product1(string name, decimal price)
{
this.name = name;
this.price = price;
}
public static ArrayList GetSampleProducts()
{
ArrayList list = new ArrayList();
list.Add(new Product1("West Side Story", 9.99m));
list.Add(new Product1("Assassins", 14.99m));
list.Add(new Product1("Frogs", 13.99m));
list.Add(new Product1("Sweeney Todd", 10.99m));
return list;
}
public override string ToString()
{
return string.Format("{0}:{1}", name, price);
}
}
/// <summary>
/// C# 2.0 中的强类型集合
/// </summary>
public class Product2
{
string name;
public string Name { get { return name; } private set { name = value; } }
decimal price;
public decimal Price { get { return price; } private set { price = value; } }
public Product2(string name, decimal price)
{
Name = name;
Price = price;
}
public static List<Product2> GetSampleProducts()
{
List<Product2> list = new List<Product2>();
list.Add(new Product2("West Side Story", 9.99m));
list.Add(new Product2("Assassins", 14.99m));
list.Add(new Product2("Frogs", 13.99m));
list.Add(new Product2("Sweeney Todd", 10.99m));
return list;
}
public override string ToString()
{
return string.Format("{0}:{1}", name, price);
}
}
/// <summary>
/// C# 3.0 中自动实现的属性
/// </summary>
public class Product3
{
public string Name { get; private set; }
public decimal Price { get; private set; }
public Product3(string name, decimal price)
{
Name = name;
Price = price;
}
Product3() { }
public static List<Product3> GetSampleProduct()
{
return new List<Product3>
{
new Product3{Name="West Side Story",Price=9.99m},
new Product3{Name="Assassins",Price=14.99m},
new Product3{Name="Frogs",Price=13.99m},
new Product3{Name="Sweeney Todd",Price=10.99m}
};
}
public override string ToString()
{
return string.Format("{0}:{1}", Name, Price);
}
}
/// <summary>
/// C# 4.0 命名实参带来了清晰的初始化代码
/// </summary>
public class Product4
{
readonly string name;
public string Name { get { return name; } }
readonly decimal price;
public decimal Price { get { return price; } }
public Product4(string name, decimal price)
{
this.name = name;
this.price = price;
}
public static List<Product4> GetSampleProduct()
{
return new List<Product4>
{
new Product4{name:"West Side Story",price:9.99m},
new Product4{name:"Assassins",price:14.99m},
new Product4{name:"Frogs",price:13.99m},
new Product4{name:"Sweeney Todd",price:10.99m}
};
}
public override string ToString()
{
return string.Format("{0}:{1}", name, price);
}
}