`
freesea
  • 浏览: 128896 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

什么是泛型

    博客分类:
  • JDK
阅读更多

u       System.Collections.Generic命名空间包含了范型集合需要的类和接口;

u       我们在写程序的时候, 经常需要这种东西: 可变长度的Array, 比如说一个string[]
而事实上定义了一个string[]并初始化后那么它的长度就固定了, Array根本做不到如果非要实现这种功能, 那唯一合理的办法只有定义一个ArrayList, 这个类似于vector类型的东西可以实现可变长度的Array, 但是带来几个问题:

l         1. ArrayList里面操作的都是object类型, 这意味着如果我放一个string进去, 再当作int取出来, 这在编译阶段是不会出错的, 而在运行时才会提示转换无效

l         2. object方式存储时, 需要装箱和拆箱操作, 这些步骤会带来额外的性能消耗 - 而没法做到普通Array那样直接

l         3. 如果要避免前两个问题, 那么所有的需要强类型的集合类都需要分别定义, 比如XxxxCollection, 非常麻烦

u       解决办法:   

l         Collection<string> strCollection = new Collection<string>();

strCollection.Add("a")strCollection.Add("b");.....

l         这样strCollection就是我们需要的集合. 范型使Add/Remove等操作全部都是类型安全的, 以索引器访问时也是类型安全的, 这在编译阶段(对于VS来说可以包括编写代码的阶段)就可以反映出来.
而性能方面, 这里根本就没有装箱/拆箱的操作, 所以比原有ArrayList方式性能更高. 也没有像以前那样声明一个StringCollection之类的class, 代码上也简洁的多.

u       范型的特点

l         增加了编译时的类型检查;

l         减少了装箱和拆箱操作;

l         减少了运行时的类型检查;

                     l          Cast

分享到:
评论

相关推荐

    什么是泛型编程&STL

    泛型编程是C++编程中的一种重要理念,它允许开发者编写独立于具体数据类型的代码,以提高代码的重用性和效率。泛型编程的核心在于模板(templates),它使得程序员能够创建能够处理不同类型数据的函数和类。这样,同...

    C#泛型,非泛型实现枚举

    首先,让我们理解什么是泛型。在C#中,泛型允许我们创建可重用的数据结构和方法,这些结构和方法可以操作任何数据类型。这大大提高了代码的灵活性和类型安全性。例如,`List&lt;T&gt;`就是一个泛型类,其中`T`代表一个未...

    c# 泛型的使用,教你如何用泛型

    首先,我们需要理解什么是泛型。泛型允许我们在定义类、接口、委托和方法时,不指定具体的类型参数,而是使用一个占位符,如`T`、`K`等。这样,当我们实例化这些泛型类型时,可以传入任何类型的参数,从而实现泛型...

    Java中的泛型

    #### 什么是泛型? 泛型是Java SE 5.0中引入的一项新特性,它允许在程序设计中使用参数化类型,从而实现类型安全的集合类和其他容器类。在使用泛型之前,Java程序员通常依赖于Object类型作为通用容器的数据类型,...

    C_泛型集合

    ### 什么是泛型? 泛型是C# 2.0引入的新特性,类似于C++中的模板。它允许开发者定义可重用的类、接口、方法和委托,其中可以包含一个或多个类型参数。这些参数在实例化时会被具体的类型替换,生成特定类型的实例。...

    泛型之FormDemo

    首先,我们来理解什么是泛型。泛型是C#中的一个核心特性,它允许我们在定义类、接口、方法或其他类型时,不指定具体的类型参数,而是使用类型变量或类型参数。这样做的好处在于,泛型类型可以在运行时与任何数据类型...

    excel中取出泛型数据存入泛型的list中

    首先,我们要理解什么是泛型。泛型是Java和C#等现代编程语言中的一种特性,允许在数据结构(如List)中指定元素类型。这样做可以确保在编译时检查类型,避免运行时的类型转换异常,并提供更好的性能。例如,在Java中...

    c#使用 和 继承 泛型类

    首先,让我们理解什么是泛型类。泛型类是一种模板或蓝图,它定义了参数化类型,这些类型在类实例化时可以被具体的类型替换。在C#中,我们使用尖括号`&lt;&gt;`来声明泛型类,并在其中放置一个或多个类型参数。例如,下面是...

    深入浅出.NET泛型编程

    什么是泛型? 泛型是一种编程技术,它允许开发者在编译时实现类型安全,通过创建可以处理多种不同数据类型的类、接口或方法。使用泛型时,开发者可以在定义泛型类时指定一个或多个类型参数,当实际使用泛型类时,...

    [Java泛型和集合].

    首先,我们要理解什么是泛型。在Java中,泛型是一种在类、接口和方法中引入类型参数的技术。它们允许我们在编写代码时指定一个或多个类型,而这些类型可以在实际使用时进行替换。这带来了两大优势:编译时类型检查和...

    .net C# 泛型事件委托

    首先,我们来理解什么是泛型。泛型是C# 2.0引入的一个重要特性,它允许开发者在定义类、接口、方法和委托时声明类型参数,这样在实例化时可以指定具体的类型,从而提高了代码的灵活性和重用性。通过使用泛型,我们...

    vs2008 泛型 的使用 实例

    首先,我们需要理解什么是泛型。泛型允许我们在编程时定义一个通用的类、接口或方法,而不指定具体的类型。这样做的好处是,我们可以在编译时确保类型的安全性,同时避免了不必要的类型转换,减少了运行时的性能损失...

    泛型dao

    首先,我们需要理解什么是泛型。Java泛型是Java SE 5.0引入的新特性,它允许在定义类、接口和方法时使用类型参数,从而创建可以处理多种类型的通用代码。泛型的主要好处在于编译时的类型检查和避免强制类型转换,...

    泛型编程技术

    首先,让我们理解什么是泛型。泛型是一种编程技术,它允许我们在定义类、接口或方法时,不指定具体的类型,而是使用类型参数(也称为类型占位符)来表示可能的数据类型。这样做的目的是为了在编译时增加类型检查,...

    泛型方法的使用.rar

    首先,让我们理解什么是泛型方法。泛型方法是在定义方法时引入了一个或多个类型参数,这些类型参数在方法被调用时由实际的类型替换。这使得同一个方法可以处理多种数据类型。例如,我们可以定义一个泛型方法`Swap&lt;T&gt;...

    泛型的原理,通俗解释

    首先,什么是泛型?泛型可以定义类型安全的类,而不会损害类型安全、性能或工作效率。例如,以下是一个使用泛型的示例代码: ```csharp Public class Stack &lt;T&gt; { T[] m_Items; public void Push(T item) {...} ...

    java 泛型的使用 详细讲解

    ##### 2.1 什么是泛型? 泛型(Generics)是指在面向对象编程中,通过参数化类型来达到类型重用的目的。通俗地说,就是将类或方法中的某些类型定义为参数形式,在实际使用时再传入具体类型的机制。 ##### 2.2 为...

    泛型演算法Generic Algorithms與Function Objects

    首先,让我们了解什么是泛型算法。泛型算法是一组不依赖于特定数据类型的操作,它们能在任何满足特定接口要求的对象上工作。例如,`std::sort`就是一个泛型算法,可以用来对任何可排序的容器进行排序,无论元素是...

    C# where泛型约束测试代码

    首先,让我们了解什么是泛型。泛型是C#中的一种特性,它允许我们在不指定具体类型的情况下编写代码,这使得代码可以应用于多种数据类型,从而提高了代码的重用性和效率。在定义泛型类、接口或方法时,我们使用尖括号...

Global site tag (gtag.js) - Google Analytics