栏目导航:首页 > 网络编程 > .Net编程 > 内容 在线投稿

.NET中的泛型

泛型是 .NET 2.0 中引入的一个新特性,从 .NET 2.0 发布到现在已经过去好多年的时间了,到现在很多公司在面试时都喜欢问诸如用过泛型吗、什么是泛型、怎么写泛型之类的问题。似乎泛型是什么高深莫测的绝学了,犹如辟邪剑法一样,一般人难以运用。其实虽然每个 .NET 程序员的具体工作内容不一样,但是对于 .NET 里的一些基本的东西的运用相差不会很大,我想对于学过C# 的刚毕业的学生也不至于没有用过泛型。下面我就简单说一下泛型。 内容来自墨者资讯

泛型将类型参数的概念引入了 .NET 中,类型参数使类和方法将一个或多个类型的指定推迟到客户端代码声明并实例化该类或方法的时候。使用泛型可以最大限度地重用代码、保护类型的安全以及提高性能。 cnmoker.org

泛型类型参数 墨者资讯,最新资讯

在泛型类或方法的定义中,类型参数是客户端代码在实例化泛型类型的变量时指定的特定类型的占位符。通常我们使用 T 作为类型参数占位符,但这并不是必须的,我们可以使用一些更有意义的描述性的名称作为类型占位符,如 TInput、TOutput 等。

墨者资讯,最新资讯

public class List<TInput, TOutput>

本文转载自www.cnmoker.org 墨者资讯网

类型参数的约束

最好的it资讯站,最全面的it资讯,尽在墨者资讯网

在定义泛型类型时可以对客户端代码在实例化类时用于类型参数的类型加以限制。如果客户端使用违反约束的类型来实例化类型,则会产生编译时错误。约束使用 where 关键字指定。 本文转载自墨者资讯网 墨者资讯网

结束 说明

本文来自墨者资讯

where T: struct 类型参数必须是值类型 cnmoker.org

where T: class 类型参数必须是引用类型

墨者资讯www.cnmoker.org

where T: new() 类型参数必须有一个 public 且无参数的构造函数
 
where T: <base classname> 类型参数必须继承至指定的基类(base class)
 
where T: <interface name> 类型参数必须是指定的接口或实现了指定接口的类型 cnmoker.org

where T: U 为 T 提供的类型参数必须是为 U 提供的参数或派生自为 U 提供的参数

cnmoker.org

public class Student
    {
        public Student(string name, int age)
        {
            Name = name;
            Age = age;
        }
        public string Name { get; set; }

        public int Age { get; set; }
    }

    public class Teacher<T> where T : new()
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string Course { get; set; }
    } 墨者资讯,最新资讯

上面的代码中我们定义了一个 Student 类和一个 Teacher 类,其中 Student 类只有一个带两个参数的构造函数。Teacher 类是一个泛型类,它的类型参数必须有一个无参的构造函数,如果使用 Student 类去实例化 Teacher 类编辑器会给出错误提示。 本文转载自www.cnmoker.org 墨者资讯网

2011-05-08_025231

本文转载自www.cnmoker.org 墨者资讯网

使用约束可以使用我们对泛型成员执行操作时变得更加安全。 cnmoker.org

来源:墨者资讯网-我们致力于做最全面的it资讯信息资料库
TAG: get 必须 参数 Set 类型 使用 public 方法
评论 | 推荐 | 挑错 | 责编:admin | 时间: 2011-05-18
上一篇:Asp.net MVC3.0 入门指南 3.2视图 View 下一篇:ASP.NET Web Forms和ASP.NET MVC免费培训视频