说明:准备出一个系列,所谓精髓讲C#语言要点。这个系列没有先后顺序,不过尽量做到精。可能会不断增删整理,本系列最原始出处是csdn博客,谢谢关注。
C#精髓
第三讲 C#泛型有什么好处
作者:清清月儿
主页:http://blog.csdn.net/21aspnet/ 时间:2007.3.24
关于object类型:
1.object类型可以来引用任何类型的实例;
2.object类型可以存储任何类型的值;
3.可以定义object类型的参数;
4.可以把object作为返回类型。
但是--这样做有很大的问题
1.会因为程序员没有记住使用的类型而出错,造成类型不兼容;
2.值类型和引用类型的互化即装箱拆箱使系统性能下降。
C#2.0提出的泛型就是避免强制类型转换,减少装箱拆箱提高性能,减少错误。
System.Collections.Generic命名空间提供许多集合类和接口的泛型版本。
定义:
public class GenericList<T>
{
public void Add(T input)//T制定成类型参数
public T Add()//T制定成返回值
}
<T>的T是类型参数,起占位符的作用,编译时被真正类型取代。
使用泛型:
GenericList<int> list1 = new GenericList<int>();
GenericList<string> list2 = new GenericList<string>();
GenericList<类名> list3 = new GenericList<类名>();
GenericList<类名<int>> list4= new GenericList<类名<int>>();
以list1为例编译器生成以下的方法:
public void Add(int input)
public int Add()
有多个类型参数的泛型类:
public class 类名<T,U>
泛型约束:
确保泛型类使用的参数是提供特定方法的类型。
public class GenericList<T> where T : IEmployee
假如IEmployee接口包含A方法,编译器会验证用于替换T的类型一定要实现IEmployee接口。
泛型方法:允许采取定义泛型类时采用的方式
//定义泛型方法
static void Swap<T>(ref T lhs, ref T rhs)
{ T temp; temp = lhs; lhs = rhs; rhs = temp; }
//使用泛型方法
public static void TestSwap(){ int a=1,b=3;
Swap<int>(ref a,ref b);
string s1="Hello",s2="world";
Swap<string>(ref s1,ref s2);}
有泛型类,泛型接口,泛型方法,泛型委托
分享到:
相关推荐
在C#编程中,泛型是一种强大的工具,它允许我们编写可重用的代码,同时保持类型安全性和高效性。本文将深入探讨泛型类、泛型方法、泛型接口和泛型委托,并通过实例来阐述它们的应用。 首先,我们来看泛型类。泛型类...
### C# 泛型的好处详解 #### 一、引言 在C#中,泛型是一种强大的编程特性,它允许开发者编写类型安全的代码,并且能够重用这些代码来处理不同的数据类型。本文将深入探讨C#泛型的几个关键优势,并通过具体的示例来...
3. **泛型方法**:在C#中,除了类和接口,方法也可以是泛型的。例如,`void Swap(ref T a, ref T b)` 方法可以交换两个相同类型变量的值。`T` 是方法的类型参数,可以是任何类型。这样,我们可以在一个方法内处理...
在C#编程中,泛型和枚举是两种非常重要的概念。泛型提供了一种方式,使得代码可以处理多种数据类型,而无需为每种类型重复编写相同逻辑。枚举则是用于定义一组预定义的常量,便于表示一组相关的值。下面我们将详细...
在编程世界中,C#和Java都是广泛应用的高级编程语言,它们都支持泛型这一强大的特性,以提高代码的类型安全性和重用性。本文将深入探讨C#和Java在泛型实现上的异同,帮助开发者更好地理解和利用这两种语言的泛型功能...
本文将深入探讨C#中的泛型,它是C#的一个重要特性,对于初学者来说,理解并掌握泛型是提高编程效率和代码复用性的关键。 泛型在C#中引入的主要目的是为了提高类型安全性和性能。它允许我们在编写代码时定义不特定于...
泛型是C#编程语言中的一个重要特性,它允许开发者创建可重用的代码模板,这些模板可以在多种数据类型上工作,而无需重复编写相同逻辑。泛型的主要目标是提高代码的效率、安全性和复用性。 在传统的C#编程中,如果...
C# 泛型是.NET框架中的一个重要特性,它允许开发者创建可重用的类型化代码,这些代码可以处理多种数据类型。泛型提高了代码的效率、安全性和灵活性,避免了不必要的类型转换,并提供了更强的类型检查。在C#中,泛型...
在C#编程中,方法异常和泛型是两个至关重要的概念。它们构成了C#语言功能的核心部分,并在软件开发中发挥着关键作用。理解和熟练掌握这两个主题,将有助于提升你的编程技能,无论你是初学者还是有经验的开发者。 ...
在C#编程语言中,泛型是面向对象编程的一个强大特性,它允许我们在不指定具体类型的情况下编写可重用的代码。泛型类是泛型的一种应用,可以在多个不同的数据类型上工作,提供了更高的类型安全性和性能。本篇文章将...
3. **C#泛型的典型应用** - **容器类**:如`List<T>`、`Dictionary, TValue>`等,提供了对不同类型数据的高效存储和操作。 - **算法**:泛型方法可以用于实现通用的算法,例如排序(`Array.Sort()`)、查找(`...
《C#精髓》是由Ben Albahari、Peter Drayton和Brad Merrill三位作者编著的关于C#语言的重要参考书。这本书由O'Reilly & Associates, Inc.出版,刘基诚翻译,中国电力出版社在2001年引进并出版了中文版。由于文件中的...
C# 泛型是一种强大的编程工具,它允许开发者创建可重用的类型化代码,这些代码可以在多种数据类型上工作,而无需重复编写针对每种数据类型的具体版本。泛型的主要目标是提高代码的效率、灵活性和安全性。在C#中,...
C# 工具类 泛型转JSON 使用 Newtonsoft.Json 转换JSON
在C#编程语言中,泛型是一种强大的特性,它允许我们编写可重用的代码,同时保持类型安全和性能。泛型是C# 2.0版本引入的新特性,极大地提高了代码的灵活性和效率。本篇文章将深入探讨C#中的泛型使用方法,帮助你更好...
.net,C# 泛型示例代码.net,C# 泛型示例代码.net,C# 泛型示例代码
#### 三、C# 泛型秘诀 - **3.2.1 理解泛型** - **泛型的本质**:泛型是一种在编译时确定具体类型的技术,能够提供更好的类型安全性和代码重用性。 - **泛型实例化**:当使用泛型类或方法时,需要指定具体的类型...
在C#编程语言中,泛型接口是一种强大的工具,它允许开发者定义一组可以在不同数据类型上操作的方法。泛型接口的使用可以极大地提高代码的复用性和灵活性,同时确保类型安全。下面我们将深入探讨C#泛型接口的概念、...
C# 泛型是.NET框架中的一个重要特性,它允许开发者创建可重用的类型化代码,这些代码可以处理多种数据类型。在C#(Visual Studio 2008及更高版本)中,泛型提供了类型安全性和性能优势,因为它们避免了在运行时进行...
在C#编程语言中,泛型是一个强大的特性,它允许我们编写可重用的代码,同时保持类型安全和性能。泛型主要分为四个关键部分:泛型类、泛型方法、泛型接口和泛型委托。下面将详细介绍这四个方面。 1. 泛型类: 泛型类...