C# 2.0泛型编程基础

最近频繁的接触到泛型方面的问题,所以也不得不来学习一下了,开始主要是在MSDN的WebCast上去下载教学录象看的(李建忠老师的),本篇文章先介绍一下泛型入门方面的知识,希望能让刚开始学习泛型的朋友能够更快的入门,言归正传,首先我们来看一下泛型的基本概念。

最显著的一点就是它参数化了类型,把类型作为参数抽象出来,从而使我们在实际的运用当中能够更好的实现代码的重复利用,同时它提供了更强的类型安全,更高的效率,不过在约束方面,它只支持显示的约束,这样在灵活性方面就显得不是那么好了。我觉得它之所以能够提供更高的效率是因为泛型在实例化的时候采用了"on-demand"的模式,即按需实例化,发生在JIT(Just In Time)编译时。

下面来看如何定义一个泛型类,很简单,你只需要意识到一点,在这里,类型已经被参数化了:

using System;
using System.Collections.Generic;
using System.Text;
namespace GenericTest
{
 class Program
 {
  static void Main(string[] args)
  {
   //使用string,int来实例化Test<T,S>类
   Test<string, int> t = new Test<string, int>("SHY520",22);
   //调用泛型类中的方法
   t.SetValue();
  }
 }
 /**//// <summary>
 /// 定义一个泛型类,该类有两个类型参数,分别是T,S
 /// http://pw.cnblogs.com
 /// </summary>
 /// <typeparam name="T">类型参数</typeparam>
 /// <typeparam name="S">类型参数</typeparam>
 public class Test<T,S>
 {
  //泛型类的类型参数可用于类成员
  private T name;
  private S age;
  public Test(T Name,S Age)
  {
   this.name = Name;
   this.age = Age;
  }
  public void SetValue()
  {
   Console.WriteLine(name.ToString());
   Console.WriteLine(age.ToString());
  }
 }
}

时间: 2024-11-30 16:03:19

C# 2.0泛型编程基础的相关文章

Visual C# 2.0泛型编程基础

visual|编程 最近频繁的接触到泛型方面的问题,所以也不得不来学习一下了,开始主要是在MSDN的WebCast上去下载教学录象看的(李建忠老师的),本篇文章先介绍一下泛型入门方面的知识,希望能让刚开始学习泛型的朋友能够更快的入门,言归正传,首先我们来看一下泛型的基本概念. 最显著的一点就是它参数化了类型,把类型作为参数抽象出来,从而使我们在实际的运用当中能够更好的实现代码的重复利用,同时它提供了更强的类型安全,更高的效率,不过在约束方面,它只支持显示的约束,这样在灵活性方面就显得不是那么好了

《圣殿祭司的ASP.NET4.0专家技术手册》----2-3 C# 4.0静态基础融入动态能力

2-3 C# 4.0静态基础融入动态能力 圣殿祭司的ASP.NET4.0专家技术手册 在了解静态与动态语言后,大家直觉上可能会以为这是二元的对立,非黑即白,不是静态语言,就是动态语言.但您是否想过静态和动态之间是可以兼具或混合的可能性?例如,静态语言为获取动态语言优点,而融入了一些动态语言的功能,然后又保持静态语言的优势,如类型安全.优化.高效率. 是的,.NET 4.0正是以这个方向去改造,在原本C#.VB静态语言基础上,加上动态语言的一些特性与优势,这样就达到以静态为主,动态为辅之目的,让C

《云安全原理与实践》——第1章 1.0云计算基础

第1章 1.0云计算基础 网络基础设施,特别是宽带的普及,使得网络逐渐变得和水.电.煤气一样,成为标准的基础设施.全球经济一体化发展.企业IT的成熟和计算能力提升.社会需求的膨胀.商业规模的扩大,以及全球产业从制造型向服务型.创新型转变,推动了云计算的产生与发展.云计算并非来自学术理论,而是直接产生于企业需求,它更关心如何扩展系统.如何方便IT管理.云计算的最终目标是将计算.服务和应用作为一种公共设施提供给公众,使人们能够像使用水.电.煤气和电话那样使用计算资源.时代的需要为云计算提供了良好的发

Flash基础理论课 第二章 ActionScript 3.0 动画基础Ⅰ

返回"Flash基础理论课 - 目录" 类和面向对象编程 类(Class)和面向对象(Object Oriented),对于有些读者来说可能还没接触过而有些读者可能已经在AS (或其它语言)中使用过很多年了,为了让大家都能学会,我会扼要的介绍一下这些基础知识.就算是 AS 2 的OOP 专家也希望能略读下这一段,因为 AS 3.0 的工作原理确实发生了很大的变化.如果你说你从没用过类,那你就错了,只要你在Flash中写过代码,那么实际上就已经使用了类.类可以简单理解为一种对象, Mov

Flash基础理论课 第二章 ActionScript 3.0 动画基础Ⅱ

返回"Flash基础理论课 - 目录" 动画事件 我们希望能够使用代码让物体动起来,并允许屏幕反复地刷新.前面看过一个使用enterFrame影片事件的示例.现在把这种方法运用到 AS 3 中,只需要增加一个enterFrame 事件的侦听器即可: addEventListener(Event.ENTER_FRAME, onEnterFrame); 别忘了导入 Event 类,并创建一个名为 onEnterFrame 的方法.人们常常迷惑,只有一帧怎么能执行 enterFrame(进入

Bootstrap3.0表格基础知识讲解

本文主要讲解的是表格,这个其实对于做过网站的人来说,并不陌生,而且可以说是最为常用的各种列表的展示,有时候也会因为用户或者老板的需求而感到头疼.下面我们来看一下,Bootstrap已经为我们准备那些类型的表格呢? 基本案例 为任意 标签添加.table可以为其赋予基本的样式-少量的内补(padding)和水平方向的分隔线.这种方式看起来很多余!?但是我们觉得,表格元素使用的很广泛,如果我们为其赋予默认样式可能会影响例如日历和日期选择之类的插件,所以我们选择将其样式独立出来. 一个简单的Table

spring boot 2.0之基础入门

spring boot介绍 spring boot为创建基于spring的应用提供了方便,不需要太多的配置,只需要很少的代码就可以实现.其也提供了对于普通java应用程序的支持以及传统的war应用支持.其主要目标:  1. 为spring开发提供快速的开发.  2. 对于一些不确定的需求能够先放在一边防止偏离.   3. 提供了很多非功能特性(例如内置服务器,安全机制,健康检查,外部配置).  4. 避免尽量少的代码以及配置. 系统条件 1. JDK 1.8以上 2. spring 5.0.2以

C# 2.0教程专题

Visual C# 2010新特性之dynamic类型 Visual C# 2010新特性之命名和可选参数与类型等价支持 C# 2.0教程专题 用Visual C# 2005创建快捷方式 用VC#2005解析含有多种格式的文本文件 利用VC# 2005为数码照片添加拍照日期 VC#2005快速入门之使用布尔操作符 VC#2005快速入门之使用while语句 Effective C#原则49:为C#2.0做好准备 VC#2005快速入门之使用if语句 VC#2005快速入门之使用do语句 VC#2

【C/C++学院】(11)泛型编程/函数模板/类模板

1.泛型编程基础 #include "iostream" using namespace std; void swap(int &a, int &b) { int c; c = a; a = b; b = c; } void swap(float &a, float &b) { float c; c = a; a = b; b = c; } void main() { int a = 1, b = 2; swap(a, b); float a1 = 1,