Esempio n. 1
0
        static void Main(string[] args)
        {
            Console.WriteLine(".net framework 1.0的时候");
            int      intValue    = 1;
            string   stringValue = "1";
            DateTime dateValue   = DateTime.Now;

            CommonMethod.ShowInt(intValue);
            CommonMethod.ShowString(stringValue);
            CommonMethod.ShowDateTime(dateValue);
            Console.WriteLine("使用object简化代码");
            CommonMethod.ShowObj(intValue);
            CommonMethod.ShowObj(stringValue);
            CommonMethod.ShowObj(dateValue);

            Console.WriteLine(".net framework 2.0的时候,引入泛型");
            GenericMethod.Show(intValue);
            GenericMethod.Show(stringValue);
            GenericMethod.Show(dateValue);

            Console.WriteLine("打印泛型类型,会看到编译器,生成占位符");
            Console.WriteLine(typeof(List <>));
            Console.WriteLine(typeof(Dictionary <,>));

            Console.WriteLine("比较性能");
            Monitor.Show();

            // 泛型类

            // 泛型接口

            // 泛型约束
            var people = new People()
            {
                Id   = 1,
                Name = "人类"
            };

            var chinese = new Chinese()
            {
                Id   = 2,
                Name = "中国人"
            };
            var japanese = new Japanese()
            {
                Id   = 3,
                Name = "日本人"
            };

            CommonMethod.ShowObj(people);
            CommonMethod.ShowObj(chinese);
            CommonMethod.ShowObj(japanese);

            GenericMethod.Show(people);
            GenericMethod.Show(chinese);
            GenericMethod.Show(japanese);

            // 上面方法只是打印了对象的类型
            // 如果想打印 对象里的内容 输出Id,Name的值

            Constraint.ShowBase(people);
            Constraint.Show(chinese);
            //Constraint.Show(japanese); 由于japannese 不是继承自 People 类所以这里不能使用

            // 为啥不直接使用基类 方法

            // 泛型类缓存
            GenericCacheTest.Show();
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            try
            {
                {
                    Console.WriteLine("*****************Old Way***********");
                    int      i  = 123;
                    string   s  = "456";
                    DateTime dt = DateTime.Now;
                    object   o  = "sorry";
                    {
                        Console.WriteLine("************************");
                        CommonMethod.ShowInt(i);
                        CommonMethod.ShowString(s);
                        CommonMethod.ShowDateTime(dt);
                        CommonMethod.ShowObject(o);
                        CommonMethod.ShowObject(i);
                        CommonMethod.ShowObject(s);
                    }


                    {
                        Console.WriteLine("*************Generic**************");
                        GenericMethod.Show(i);          // <> 能省略,自动推算
                        GenericMethod.Show <string>(s); //需要指定参数类型
                    }

                    {
                        Console.WriteLine("*************Monitor**************");
                        // 性能 common ~ Generic > object
                        Monitor.Show();

                        GenericCacheTest.Show();
                    }
                    {
                        Console.WriteLine("********************Constraint*************");
                        {
                            People people = new People()
                            {
                                Id   = 123,
                                Name = "people"
                            };

                            Chinese chinese = new Chinese()
                            {
                                Id   = 234,
                                Name = "Ivan"
                            };

                            Hubei hubei = new Hubei()
                            {
                                Id   = 345,
                                Name = "Hubei"
                            };

                            Japanese japanese = new Japanese()
                            {
                                Id   = 567,
                                Name = "Cang"
                            };

                            CommonMethod.ShowObject(people);
                            CommonMethod.ShowObject(chinese);
                            CommonMethod.ShowObject(hubei);
                            CommonMethod.ShowObject(japanese);

                            GenericMethod.Show <People>(people);
                            GenericMethod.Show <Chinese>(chinese);
                            GenericMethod.Show <Hubei>(hubei);
                            GenericMethod.Show <Japanese>(japanese);
                            {
                                Constraint.Show <People>(people);
                                Constraint.Show <Chinese>(chinese);
                                Constraint.Show <Hubei>(hubei);
                                //  Constraint.Show<Japanese>(japanese); Error because Japanese not a child class of People
                            }
                        }

                        {
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            Console.Read();
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("欢迎来到.net高级班vip课程,今天是Eleven老师给大家带来的泛型Generic");
                //List<int>
                //List<string>

                //Console.WriteLine(typeof(List<>));//`1
                //Console.WriteLine(typeof(Dictionary<,>));//`2
                //var varValue = 789;
                //object objectValue = 789;
                //int iValue = 123;
                //dynamic dValue = 789;

                ////int result = varValue + iValue;
                ////int result2 = objectValue + iValue;
                //int result3 = dValue + iValue;
                //string sValue = "456";
                //DateTime dtValue = DateTime.Now;
                //object oValue = "MrSorry";

                //Console.WriteLine("**************************");
                //CommonMethod.ShowInt(iValue);
                //CommonMethod.ShowString(sValue);
                //CommonMethod.ShowDateTime(dtValue);
                //CommonMethod.ShowObject(oValue);

                //CommonMethod.ShowObject(iValue);
                //CommonMethod.ShowObject(sValue);
                //CommonMethod.ShowObject(dtValue);

                //Console.WriteLine("************Generic**************");
                //GenericMethod.Show<int>(iValue);//需要指定类型参数
                ////GenericMethod.Show<string>(iValue);//必须吻合
                //GenericMethod.Show(iValue);//能省略,自动推算
                //GenericMethod.Show<string>(sValue);
                //GenericMethod.Show<DateTime>(dtValue);
                //GenericMethod.Show<object>(oValue);


                ////GenericClass<int> genericClass = new GenericClass<int>()
                ////{
                ////    _T = 123
                ////};
                ////GenericClass<string> genericClassString = new GenericClass<string>()
                ////{
                ////    _T = "123"
                ////};

                //Console.WriteLine("************Monitor**************");
                //Monitor.Show();
                ////generic≈≈common>object
                ////泛型:又叫马儿跑,又叫马儿不吃草! 因为框架的升级

                GenericCacheTest.Show();

                Console.WriteLine("************Constraint*****************");
                {
                    People people = new People()
                    {
                        Id   = 123,
                        Name = "走自己的路"
                    };
                    Chinese chinese = new Chinese()
                    {
                        Id   = 234,
                        Name = "晴天"
                    };
                    Hubei hubei = new Hubei(123)
                    {
                        Id   = 345,
                        Name = "流年"
                    };
                    Japanese japanese = new Japanese()
                    {
                        Id   = 7654,
                        Name = "苍老师"//寒露的建议
                    };

                    //CommonMethod.ShowObject(people);
                    //CommonMethod.ShowObject(chinese);
                    //CommonMethod.ShowObject(hubei);
                    //CommonMethod.ShowObject(japanese);

                    //Constraint.Show<People>(people);
                    Constraint.Show <Chinese>(chinese);
                    //Constraint.Show<Hubei>(hubei);
                    //Constraint.Show<Japanese>(japanese);//
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.Read();
        }