C#中的泛型简介与理解

C#中的泛型,从字面意思可猜想,也就是泛指的类型,即类型不确定。用于编程中,也就是说可以对不同的类型进行抽象。概念其实很简单,对于我们这些新手来说,主要问题

可能就是对泛型的作用,用法和语法的规则,简写等等的掌握。

首先,对泛型的整体进行介绍。在学习和掌握泛型之前,我们需要谨记一个概念,C#语言是面向对象的,泛型是类。

泛型跟类一样,包括泛型类,泛型方法,泛型接口,泛型结构。

一、泛型的定义

1、泛型类

1 class MyGeneric<T>
2 {
3     //.............
4 }

2、泛型方法

1 public void MyMethod<T>()
2 {
3       //.....
4 }  

3、泛型接口

1 interface MyInterface<T>
2 {
3     //......
4 }  

4、泛型结构

1 struct MyStruct<T>
2 {
3      //.....
4 }  

通过对上面的泛型类泛型方法泛型接口泛型结构的声明语法的观察,我们可以轻松的发现,相对于C#中的类的声明等语法,其实泛型只是多加了一个类型参数用来表示不

同类型而已。添加的方式也就是在类、方法等名称后面加"<T>"。另外,我们也知道,类、方法、接口和接口的声明中可以包含多种不同的类型,那么同样的道理泛型类、泛型方

法、泛型接口和泛型结构中当然也就可以包含多个类型不确定的泛型参数,使用多个泛型参数的时候需要在<>中添加不同的泛型参数。

二、泛型的使用

对于泛型的使用,总结成一句话就是,跟普通类的使用是几乎一样的,只是在使用过的时候需要将类型参数确定为明确的类型。

三、泛型的注意事项

1、有的时候在定义泛型的时候,我们需要确定泛型的类型参数必须要满足某个条件,那么我们可以使用where关键字来实现,目的是让类型参数必须要实现某个类型接口,要是

需要保证类型参数可以实例化的话,那么就需要在where的约束的最后,添加new()约束即可。

2、需要注意泛型之间的相互转换问题。

时间: 2024-10-07 05:06:35

C#中的泛型简介与理解的相关文章

深入理解C#中的泛型(二)

接着深入理解C#中的泛型(一),这篇文章主要讲解泛型类.泛型方法.泛型与集合. 泛型类 如果我们想对一个类的所有泛型方法进行统一参数约束,我们把约束条件加在类上,此时这个类便成为泛型类,如下: public class SortHelper<T> where T : IComparable 泛型方法 如果一个类中只有某个方法使用了泛型,这时我们自然会想到:有没有办法把参数T加到方法上,而非整个类上,也就是降低T作用的范围.答案是可以的,我们称这样的方法为泛型方法,如下: public clas

夯实Java基础系列13:深入理解Java中的泛型

目录 泛型概述 一个栗子 特性 泛型的使用方式 泛型类 泛型接口 泛型通配符 泛型方法 泛型方法的基本用法 类中的泛型方法 泛型方法与可变参数 静态方法与泛型 泛型方法总结 泛型上下边界 泛型常见面试题 参考文章 微信公众号 Java技术江湖 个人公众号:黄小斜 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star.Fork.Watch三连哈,感谢你的

java中的泛型(转)

什么是泛型? 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样. 可以在集合框架(Collection framework)中看到泛型的动机.例如,Map 类允许您向一个 Map 添加任意类的对象,即使最常见的情况是在给定映射(map)中保存某个特定类型(比如 String)的对象. 因为 Map.get(

Java中的泛型 (上) - 基本概念和原理

本节我们主要来介绍泛型的基本概念和原理 后续章节我们会介绍各种容器类,容器类可以说是日常程序开发中天天用到的,没有容器类,难以想象能开发什么真正有用的程序.而容器类是基于泛型的,不理解泛型,我们就难以深刻理解容器类.那,泛型到底是什么呢? 什么是泛型? 一个简单泛型类 我们通过一个简单的例子来说明泛型类的基本概念.实现原理和好处. 基本概念 我们直接来看代码: public class Pair<T> { T first; T second; public Pair(T first, T se

泛型简介,泛型类及使用

如果我们需要产生多个对象,每个对象的逻辑完全一样,只是对象内的成员变量的类型不同.那么我们该如何去做? ①   创建多个类文件,给每个类中的成员变量设置指定的数据类型; 1 public class Demo1{ 2 public static void main(String []args){ 3 MyClass1 myclass1=new MyClass1("张三"); 4 System.out.println(myclass1.getData()); 5 MyClass2 myc

6.在MVC中使用泛型仓储模式和依赖注入实现增删查改

原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pattern-and-dep/ 系列目录: Relationship in Entity Framework Using Code First Approach With Fluent API[[使用EF Code-First方式和Fluent API来探讨EF中的关系]] Code First Mig

SQL - 简介和理解

1.简介 STL=StandardTemplateLibrary,标准模板库,惠普实验室开发的一系列软件的统称.它是由AlexanderStepanov.MengLee和DavidRMusser在惠普实验室工作时所开发出来的.这可能是一个历史上最令人兴奋的工具的最无聊的术语.从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合.这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作.STL的目的是标准化组件,这样

.NET之美——1.1 C#中的泛型

1.1 C#中的泛型 .Net 1.1版本最受诟病的一个缺陷就是没有提供对泛型的支持.通过使用泛型,我们可以极大地提高代码的重用度,同时还可以获得强类型的支持,避免了隐式的装箱.拆箱,在一定程度上提升了应用程序的性能.本文将系统地为大家讨论泛型,我们先从理解泛型开始. 1.1 理解泛型 1.1.1 为什么要有泛型? 我想不论大家通过什么方式进入了计算机程序设计这个行业,都免不了要面对数据结构和算法这个话题.因为它是计算机科学的一门基础学科,往往越是底层的部分,对于数据结构或者算法的时间效率和空间

C# 泛型简介

摘要:本文讨论泛型处理的问题空间.它们的实现方式.该编程模型的好处,以及独特的创新(例如,约束.一般方法和委托以及一般继承).此外,本文还讨论 .NET Framework 如何利用泛型. 下载 GenericsInCSharp.msi 示例文件. 注 本文假定读者熟悉 C# 1.1.有关 C# 语言的详细信息,请访问 http://msdn.microsoft.com/vcsharp/language. 本页内容 简介 泛型问题陈述 什么是泛型 应用泛型 一般约束 泛型和强制类型转换 继承和泛