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<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 约束时),泛型中的类必须有公共的无参数构造函数


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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值