范型是Microsoft.NET 2.0里面一个新加的内容,它使得C#语言更加完美。鉴于范型这个概念炒作炒得太虚,而缺少实际例子,使得很多菜鸟搞不懂这个概念,所以我来详细说明1个例子程序,大家就能明白了。
一、首先在VS2005环境里面新建一个控制台应用程序(Console)
二、完成如下代码:
staticvoidMain(string[]args)
{
PrintInt(1);
PrintString("a");
PrintAll1(2,"b");
PrintAll2<int>(3);
PrintAll2<string>("c");
PrintAll2(4);
PrintAll2("d");
PrintAll2(5.5);
Console.ReadLine();
}
staticvoidPrintInt(intx)
{
Console.WriteLine(x);
}
staticvoidPrintString(stringy)
{
Console.WriteLine(y);
}
staticvoidPrintAll1(intx,stringy)
{
Console.WriteLine(x);
Console.WriteLine(y);
}
staticvoidPrintAll2<T>(Tx)
{
if(typeof(T)==typeof(int))
{
Console.WriteLine(x);
}
elseif(typeof(T)==typeof(string))
{
Console.WriteLine(x);
}
else
{
Console.WriteLine("Error");
}
}
三、代码说明:
Void Main是Console控制台应用的程序入口,这个大家都应该知道吧,然后Console.WriteLine一个int型变量是允许的,不用x.ToString(),Console.ReadLine()目的是为了停止屏幕,方便查看运行结果。下面说正题:
作为一个普通的方法,PrintInt是打印一个数字,PrintString是打印一个字符串,但是如果我需要一个方法,既能打印数字,又能打印字符串呢,那就是PrintAll1这个方法,它同时接收整型、字符串型2个变量,然后分两行显示。如果我的要求更苛刻,我需要一个方法,除了既能打印数字又能打印字符串之外,还必须有且只有1个参数,不考虑结构体什么的,实现这样子的东西,就叫范型。理智的说,普通方法传递不同值变量,范型方法传递不同类型的变量,上面这个例子,就是从范型方法。当然范型技术还能用在类上面,为了入门,先不说这些,从范型方法入手。
PrintAll2就是范型方法,记住范型方法的书写格式,先定义一个未知类型T,写在方法名后面的尖括号里,然后参数是这个未知类型T的实例,然后方法里面的代码逻辑就是判断这个T到底是啥类型,然后根据不同类型,做出不同判断,执行不同代码。那么如何调用这个范型方法呢?我在void Main里面调用了PrintAll2五次,PrintAll2<int>(3)指定了参数就是整型的,PrintAll2<string>("c")指定了参数就是字符串,PrintAll2(4)和PrintAll2("d")没有明说参数是啥类型,但是程序会通过参数自动判断类型,得到正确的结果,PrintAll2(5.5)由于范型方法里面没有写该怎么处理浮点型,所以打印Error。
分享到:
相关推荐
以下是对c#范型中的特殊关键字where和default进行了详细的介绍,需要的朋友可以过来参考下
泛型详解,C#是强类型语言。作为一个程序员,当你使用这些语言时,总会期望编译器进行类型安全的检查。例如,如果你把对一个Book类型的引用转换成一个Vehicle型的引用,编译器将告诉你这样的cast是无效的。
泛型:泛型是程序设计语言的一种特性,通过参数类型来实现在同一封代码上操作多个数据类型,例如List 泛型的作用:提高了性能,避免了装箱拆箱,提高了代码的重用性,
Reflector(.Net映射),可编译.dll文件
在看源码的时候看见了where和default,虽说default很常见,但是它的用法我却是第一次看到,哎,基础不扎实啊! 下面介绍下这两个特殊的关键字:一、Where关键字where 子句用于指定类型约束,这些约束可以作为泛型...
消息传递范型与C/S范型双范型的主数据管理机制,陈晓云,邢乔金,本文针对主数据管理(MDM)存在的问题提出了一种基于消息传递机制范型与C/S范型双范型的主数据管理机制,当各个分系统的数据有所变化�
C++多范型设计,ISBN:9787508318240,作者:(美)James O.Coplien著;鄢爱兰,周辉等译;鄢爱兰译
Java 范型Java 范型
范型程序设计与 STL.pdf,大小约 300K。
java1.5范型编程指南.docjava1.5范型编程指南.docjava1.5范型编程指南.docjava1.5范型编程指南.docjava1.5范型编程指南.doc
设计新思维:范型编程与设计模式之应用.pdf DesignPattern(设计模式迷你手册).chm Effective+STL+中文版(完整版).chm STL_Programmer_Guide.chm STL入门教程.chm C...标准程序库.pdf
《分布式系统原理与范型》第一版.中文版,影印版。
分布式系统原理与范型第二版课后习题答案 分布式系统原理与范型第二版课后习题答案 分布式系统原理与范型第二版课后习题答案 分布式系统原理与范型第二版课后习题答案
《分布式系统原理与范型》是分布式系统中的经典教材,全书分为两部分:原理和范型。第一部分详细讨论了分布式系统的原理、概念和技术,其中包括通信、进程、命名、同步、一致性和复制、容错以及安全。第二部分给出了...
C#数组、集合对象和范型,讲解详细,对于编程很实用
分布式系统原理与范型.pdf tanenbaum的早期操作系统著作
书名:C++多范型设计 作者:[美]James O.Coplien 译者: 出版社:中国电力出版社 本书详细地介绍了从“应用领域”到“方案领域”的C++设计实现方法,以及开发者在设计思考和设计实践过程中需要用到的记法、图表和设计...
C++多范型设计.pdfC++多范型设计.pdfC++多范型设计.pdf
是《分布式系统原理与范型(第二版)》的答案 上回写错了,易造成误解! 本文档是第二版书的答案哦! 绝对是新的哦! 英文的!
详细介绍分布式原理和基本范型, 是一部不可多得的分布式经典书籍。