C# 泛型和其中的new 约束

百度搜索关键字: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 infos = new List() {
            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 约束时),泛型中的类必须有公共的无参数构造函数


【延伸思考】面试的时候会问到new有哪些用法,下面列举new语句的三种用法:

1、new运算符:创建对象和调用构造函数

2、new修饰符:用于向基类成员隐藏继承成员

3、new约束:用于在泛型声明中约束可能用作类型参数的参数的类型

你可能感兴趣的:(软件开发)