A-A+

1.1从简单的数据类型开始

2017年06月04日 C#深入理解 评论关闭 阅读 1,862 views 次



c# 1.0 定义简单的数据类型

C# 2.0 引入泛型的概念

C# 3.0 自动属性

C# 4.0 命名实参


结论:

    Product类型的演变历程,展示了越来越好的封装性、越来却强的类型化及越来越容易的初始化。



    #region C# 1.0 定义产品类型

    //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("liyang", 12m));
    //        list.Add(new Product("liyang", 12m));
    //        list.Add(new Product("liyang", 12m));


    //        return list;

    //    }
    //    public override string ToString()
    //    {
    //        return string.Format("{0}:{1}", name, price);
    //    }


    //}

    #endregion


    #region C# 2.0 强类型集合
    //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("liyang", 12m));
    //        list.Add(new Product("liyang", 13m));
    //        list.Add(new Product("liyang", 12m));
    //        return list;

    //    }
    //    public override string ToString()
    //    {
    //        return string.Format("{0}:{1}", name, price);
    //    }
    //}

    #endregion


    #region C# 3.0 自动实现属性
    //public class Product
    //{
    //    public string Name { get; private set; }

    //    public decimal Price { get; set; }



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


    //    Product() { }


    //    public static List<Product> GetSampleProducts()
    //    {
    //        return new List<Product>
    //        {
    //            new Product{ Name="liyang1", Price=10m},
    //            new Product{ Name="liyang2", Price=10m},
    //            new Product{ Name="liyang3", Price=10m}
    //        };
    //    }
    //    public override string ToString()
    //    {
    //        return string.Format("{0}:{1}", Name, Price);
    //    }
    //}

    #endregion


    #region C# 4.0 中的名称实参

    public class Product
    {
        readonly string name;
        public string Name { get { return name; } }


        readonly decimal price;
        public decimal Price { get { return price; } }



        public Product(string name, decimal price)
        {
            this.name = name;
            this.price = price;
        }


        Product() { }


        public static List<Product> GetSampleProducts()
        {
            return new List<Product>
            {
                //new Product{ name   : "liyang",price:10m   },
                //new Product{ Name="liyang2", Price=10m},
                //new Product{ Name="liyang3", Price=10m}
                

                //下面这种方式调用的是构造函数,因为属性只有只读,没有set了
                new Product(name:"liyang",price:10m),
                new Product(name:"liyang",price:11m),
                
            };
        }
        public override string ToString()
        {
            return string.Format("{0}:{1}", Name, Price);
        }
    }
    #endregion


标签:

评论已关闭!

Copyright © sql语句大全 保留所有权利.   Theme  Ality 津ICP备15000635号

用户登录

分享到: