`
javatoyou
  • 浏览: 1061402 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

C#范型入门(扫盲)

阅读更多

范型是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 &amp; default

    以下是对c#范型中的特殊关键字where和default进行了详细的介绍,需要的朋友可以过来参考下

    c#泛型详解,泛型方法,泛型类

    泛型是C#编程中的一项重要特性,它允许开发者创建可重用的代码,同时确保类型安全。在C#中,泛型通过参数化类型来实现,这意味着可以在一个泛型类或方法中使用一个或多个类型参数,这些参数将在实际使用时被具体的...

    c#中的泛型

    泛型:泛型是程序设计语言的一种特性,通过参数类型来实现在同一封代码上操作多个数据类型,例如List 泛型的作用:提高了性能,避免了装箱拆箱,提高了代码的重用性,

    Reflector(.Net映射)

    .NET Framework的运行时环境使用MSIL(Microsoft Intermediate Language)作为中间代码,Reflector能够将编译后的MSIL代码转换回C#、VB.NET或其他.NET语言的可读源代码。这一过程称为反编译,它帮助开发者洞察代码...

    浅析c#范型中的特殊关键字where default

    在看源码的时候看见了where和default,虽说default很常见,但是它的用法我却是第一次看到,哎,基础不扎实啊! 下面介绍下这两个特殊的关键字:一、Where关键字where 子句用于指定类型约束,这些约束可以作为泛型...

    C++多范型设计

    《C++多范型设计》是一本深入探讨C++编程语言中模板技术的专著,由知名软件工程师James O. Coplien撰写,并由鄢爱兰、周辉等翻译成中文版,ISBN号为9787508318240。这本书的核心主题是C++中的泛型编程,它是C++编程...

    论文研究-消息传递范型与C/S范型双范型的主数据管理机制 .pdf

    本文提出的基于消息传递范型和客户机/服务器(Client/Server,简称C/S)范型双范型的主数据管理机制,能够有效解决MDM面临的问题。 消息传递范型是计算机科学中的一个基本概念,用于描述进程间通信的方式。在这范型...

    范型程序设计与 STL.pdf

    《范型程序设计与 STL》是一本深入探讨C++编程中的关键概念和技术的书籍,主要聚焦于范型(Generic Programming)和标准模板库(Standard Template Library,简称STL)。范型编程是一种强大的软件开发方法,它允许...

    Java 范型Java 范型.doc

    Java 范型Java 范型

    STL入门教程 设计模式 范型编程

    设计新思维:范型编程与设计模式之应用.pdf DesignPattern(设计模式迷你手册).chm Effective+STL+中文版(完整版).chm STL_Programmer_Guide.chm STL入门教程.chm C...标准程序库.pdf

    分布式系统原理与范型

    《分布式系统原理与范型》是分布式系统中的经典教材,全书分为两部分:原理和范型。第一部分详细讨论了分布式系统的原理、概念和技术,其中包括通信、进程、命名、同步、一致性和复制、容错以及安全。第二部分给出了...

    《分布式系统原理与范型》.pdf

    《分布式系统原理与范型》作为一本系统介绍分布式系统基本原理与实践应用的书籍,涵盖了分布式系统设计与实现的核心理念。分布式系统指的是由多个可以独立运行的计算单元构成的系统,这些计算单元通过通信网络相互...

    C++多范型设计 作者:[美]James O.Coplien

    书名:C++多范型设计 作者:[美]James O.Coplien 译者: 出版社:中国电力出版社 本书详细地介绍了从“应用领域”到“方案领域”的C++设计实现方法,以及开发者在设计思考和设计实践过程中需要用到的记法、图表和设计...

    分布式系统原理与范型(第二版)

    分布式系统原理与范型是IT领域中至关重要的一个主题,特别是在云计算、大数据处理以及现代互联网服务的背景下,理解和掌握分布式系统的概念与实践至关重要。本书作为第二版,深度探讨了这一领域的核心理论和常见模式...

    C++多范型设计.pdf

    C++多范型设计.pdfC++多范型设计.pdfC++多范型设计.pdf

    分布式系统原理与范型答案(第二版)答案

    分布式系统原理与范型是计算机科学中的一个重要领域,它涵盖了多台计算机如何通过网络协同工作,以实现一个共同的目标。《分布式系统原理与范型(第二版)》这本书深入浅出地介绍了这一主题,旨在帮助读者理解分布式...

    c#基础学习 共十个章节

    此外,还帮助读者掌握范型,委托的使用,以及程序的异常处理和对程序的简单调试方法。最后读者还将了解如何使用Visual C# 2008进行Windows窗体应用程序和Web应用程开发,以及如何进行AJAX,xml Webservice 编程的...

    分布式系统-原理与范型(第2版) 完整版

    第2~9章讨论的是分布式系统的的原理、概念和技术,包括通信、进程、命名、同步化、一致性和复制、容错性以及安全性等,而分布式应用的开发方法(即范型)在第10~13章中进行了讨论。但是,与前一版不同的是,我们...

    分布式系统-原理与范型(第2版)

    分布式系统-原理与范型(第2版) 分布式系统-原理与范型(第2版) 分布式系统-原理与范型(第2版) 分布式系统-原理与范型(第2版)

Global site tag (gtag.js) - Google Analytics