C# 泛型和其中的new 约束

来源:互联网 发布:淘宝编辑宝贝详情 编辑:程序博客网 时间:2024/05/18 03:07

百度搜索关键字:C# 泛型,点出了下面两个链接:

http://www.cnblogs.com/kid-li/archive/2006/11/29/577045.html(百度显示的第一个链接)

http://msdn.microsoft.com/zh-cn/library/512aeb7t.aspx(百度显示的第四个链接)

MSDN的解释总是晦涩难懂,不如博客园和CSDN来的更直接、实用。

照字解字,顾名思义,泛型就是指更广泛的类型。

个人举个例子吧:

    public class Car
    {
        public string AutoMark { get; set; }
        public string Name { get; set; }
        public string Year { get; set; }
        public string TopSpeed { get; set; }
    }

        private void InitialCarList()
        {
            List<Car> infos = new List<Car>() {
            new Car(){ AutoMark="Aodi", Name="Aodi", TopSpeed="200", Year="1990"},
            new Car(){ AutoMark="Aodi", Name="Aodi", TopSpeed="250", Year="1998"},
            new Car(){ AutoMark="Aodi", Name="Aodi", TopSpeed="300", Year="2002"},
            new Car(){ AutoMark="Aodi", Name="Aodi", TopSpeed="350", Year="2011"},
            new Car(){ AutoMark="Aodi", Name="Aodi", TopSpeed="500", Year="2020"}
            };
            this.lbInfos.ItemsSource = infos;//lbInfos是WPF控件ListBox
        }

通过上面这个例子,可以建立对泛型的初步认识!如果你还有兴趣,可以继续深入。

值得注意的是泛型中用到的new是new约束, 百度搜索关键字:new 约束,百度显示的第一个链接便是MSDN的官方链接:

http://msdn.microsoft.com/zh-cn/library/sd2w2ew5.aspx

new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。如果要使用 new 约束,则该类型不能为抽象类型。

这个解释倒还易懂些,个人再翻译得大白话点,就是泛型中的类不能是抽象类(使用 new 约束时),泛型中的类必须有公共的无参数构造函数