zoukankan      html  css  js  c++  java
  • [Evolution in action] C#1.1=>2.0=>3.0 [Defining Type]

    We'll move on to see how the same effect can be achieved in C#2.0,then C#3.0.

    image 

    C#1.1 Code

    using System.Collections;
        public class Product
        {
            string name;
            public string Name
            {
                get { return name; }
            }
            decimal price;
            public decimal Price
            {
                get { return price; }
            }
            public Product(string name, decimal price)
            {
                this.name = name;
                this.price = price;
            }
            public static ArrayList GetSampleProducts()
            {
                ArrayList list = new ArrayList();
                list.Add(new Product("Company", 9.99m));
                list.Add(new Product("Assassins", 14.99m));
                list.Add(new Product("Frogs", 13.99m));
                list.Add(new Product("Sweeney Todd", 10.99m));
                return list;
            }
            public override string ToString()
            {
                return string.Format("{0}: {1}", name, price);
            }
        }

    Let's see what C#2.0 can do to improve matter

    using System.Collections.Generic;
        public class Product
        {
            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 Product(string name, decimal price)
            {
               
    Name = name;
                Price = price;
            }
            public static List<Product> GetSampleProducts()
            {
               List<Product> list = new List<Product>();
                list.Add(new Product("Company", 9.99m));
                list.Add(new Product("Assassins", 14.99m));
                list.Add(new Product("Frogs", 13.99m));
                list.Add(new Product("Sweeney Todd", 10.99m));
                return list;
            }
            public override string ToString()
            {
                return string.Format("{0}: {1}", name, price);
            }
        }

    Show how C#3.0 tackles these.

    class Product
        {
           
    public string Name { get; private set; }
            public decimal Price { get; private set; }

            public Product(string name, decimal price)
            {
                Name = name;
                Price = price;
            }

            Product()
            {
            }

            public static List<Product> GetSampleProducts()
            {
               
    return new List<Product>
                {
                    new Product { Name="Company", Price = 9.99m },
                    new Product { Name="Assassins", Price=14.99m },
                    new Product { Name="Frogs", Price=13.99m },
                    new Product { Name="Sweeney Todd", Price=10.99m}
                };
            }

            public override string ToString()
            {
                return string.Format("{0}: {1}", Name, Price);
            }
        }

  • 相关阅读:
    希尔排序的理解和实现(Java)
    直接插入排序实现(Java)
    冒泡排序算法与选择排序算法
    Java中IO流中所涉及到的各类方法介绍
    Java常见编码方式简介
    Java中的BufferedReader 的readLine方法
    Java使用基本字节流OutputStream的四种方式对于数据复制(文本,音视频,图像等数据)
    java中IO流操作的标准异常类
    Java中常见数据结构:list与map
    互联网的网络地址分类
  • 原文地址:https://www.cnblogs.com/RuiLei/p/1161767.html
Copyright © 2011-2022 走看看