泛型的疑惑

问题描述

这2天看泛型特别疑惑大家看看我理解哪岔开了在C#中泛型是一个类型可以有泛型类、泛型方法、泛型接口等等泛型的定义标准格式是:泛型类:Class类名<T>泛型方法:void方法名<T>(inta,intb)....那这边定义的这种格式里面的泛型参数T只是告诉类或者方法他要处理的是啥类型的数据?网上说泛型大部分是来处理集合(Collection)的,这个如果定义的泛型类的话不太理解?是不是.net里面自带了几个系统泛型啊List<T>,IList<T>.....上面2个啥区别啊呵呵小弟理解上有点混乱请各位指教

解决方案

解决方案二:
顶。一直没有真正的了解过
解决方案三:
都I开头了你觉得它会是什么如果确定不了,就在上面按F12
解决方案四:
引用2楼sandy945的回复:

都I开头了你觉得它会是什么如果确定不了,就在上面按F12

接口呵呵你要是有空麻烦给我讲讲
解决方案五:
我真讲不出MSDN的效果
解决方案六:
看看这个
解决方案七:
什么是泛型通过泛型可以定义类型安全类,而不会损害类型安全、性能或工作效率。您只须一次性地将服务器实现为一般服务器,同时可以用任何类型来声明和使用它。为此,需要使用<和>括号,以便将一般类型参数括起来。

T是一般类型参数(或类型参数),而一般类型为Stack。Stack中的int为类型实参。该编程模型的优点在于,内部算法和数据操作保持不变,而实际数据类型可以基于客户端使用服务器代码的方式进行更改。

解决方案八:
泛型类和集合联系比较多是因为集合的关注点一般都是增加项,查找项,删除项这种功能,而这个具体项是什么类型一般不关注。如果要自己实现,就需要把项定义成object类型才行,否则就要写很多类似的类型定义了,但object牵扯到装箱,效率比较低,泛型就可以弥补这个缺点。相当于ListByIntListByString......这些类型只写一次。
解决方案九:
建议你先了解一下object,

时间: 2024-10-14 23:31:06

泛型的疑惑的相关文章

简单分析.net泛型中的类型参数

一位朋友询问tppeof.GetType().is.as的问题,在实验的时候顺手就用泛型写的例子.在看Jit后的反汇编时发现了一个问题,clr对泛型参数有些特殊处理.上网查了一下没有找到介绍泛型参数存储的文章因此动手做了一番实验,有了些浅显的理解在此记录下来望看到此文的高手能给予全面的解释. 以前用泛型的时候没想过clr是如何处理泛型参数的,今天查阅了下<<Expert .NET 2.0 IL Assembler>>里面讲解了一个叫做GenericParam Metadata Ta

C#基础之泛型_C#教程

1.泛型的本质 泛型的好处不用多说,在.NET中我看到有很多技术都是以泛型为基础的,不过因为不懂泛型而只能对那些技术一脸茫然.泛型主要用于集合类,最主要的原因是它不需要装箱拆箱且类型安全,比如很常用的List<T>.对于List<T>我以后还想进行深究,现在我写了一个超简版的MyList<T>集合,如下面第一段代码所示.代码很简单,但在写的过程中有一个细节,如果我为listInt赋值string类型的变量时编译器会提示报错.编译器很智能,但是从这个现象中你会不会好奇泛型

java se-使用泛型打印输出任意类型的数组,为什么调用时有错误?

问题描述 使用泛型打印输出任意类型的数组,为什么调用时有错误? import java.util.Arrays; public class FanXing { public static void printMatrix(T[][] matrix){ for(int i=0;i<matrix.length;i++){ System.out.println(Arrays.toString(matrix[i])); } } public static void main(String[] args)

诊断Java代码: 轻松掌握 Java 泛型,第4部分

至此,在这个讨论 JSR-14 和 Tiger 中泛型类型的微型系列中,我们已经探讨了: 泛型类型及被设计成支持它们的即将发布的功能 基本类型.受约束的泛型以及多态方法上的限制 几个强加给这些 Java 扩展的限制 这些扩展语言的编译器所用的实现策略如何使这些限制成为必需 在泛型类型中添加对"裸"类型参数的 new 操作的支持所带来的影响 本月,我们将探讨在可以处理 mixin(可能被期望是泛型类型中最强大的功能)之前需要先解决的问题,以此来结束对 Java 语言中泛型类型的讨论. m

诊断Java代码: 轻松掌握Java泛型,第3部分

这一系列主要讨论在 Java 编程中添加泛型类型,本文是其中的一篇,将研究还未讨论过的有关使用泛型的两个限制之一,即添加对裸类型参数的 new 操作的支持(如类 C<T> 中的 new T() ). 正如我 上个月所提到的那样,Tiger 和 JSR-14 通过使用"类型消除(type erasure)"对 Java 语言实现泛型类型.使用类型消除(type erasure),泛型类型仅用于类型检查:然后,用它们的上界替换它们.由此定义可知:消除将与如 new T() 之类

泛型-c# 动态创建控件 及触发事件 即插即用。

问题描述 c# 动态创建控件 及触发事件 即插即用. 各大大好,初来驾到,请大家多多关照,问题是这样的.需求 :需要动态添加控件.然后需要项目做出来后要实现"即插即用"的特点.(即插即用:我们要是更新一个功能,用户只要更新这个控件就可以直接使用,而不用更新整个客服端)问题 :知道要用泛型来写,但是看了一天了,不知道如何下手,现已写了如下代码:using System;using System.Collections.Generic;using System.Linq;using Sys

泛型

 什么是Java泛型                1.java泛型是java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法.                2.java泛型可以让你消除代码中的强制类型转换,同时获得一个附加的类型检查层,该检查层可以防止有人将错误类型的键或值保存在集合中.这就是泛型所做的工作. 为什么要有泛型 先来看看以下代码,        publi

新手学习c++,使用vs的疑惑

问题描述 新手学习c++,使用vs的疑惑 大家好,我是一名刚刚学习c++的新手,语法已经看得还可以了,使用vs2010写程序,但是我发现写出来的程序都是命令提示框,跟我之前使用的vb根本不同,不能直接做出界面,折腾了好久,后来发现vs中有一个工具箱,貌似可以使用控件设计界面,但是又发现这好像是c#的代码,而且看了一下,好像都是用类处理的,作为c++新手的我就蒙掉了. 我就想问是不是学习c++,使用vs就只能是利用mfc做界面,或者是直接调用api制作界面呢?而呢个工具箱好像就是为c#设计而已啊?

double类型结构体对齐的疑惑

问题描述 double类型结构体对齐的疑惑 32bit的cpu,在msvc中如果结构体有double类型,则以8字节对齐,例如 struct test { char ch; double j; }; ch也会占用8个字节,而32bit的cpu会一次性取到8个字节么?难道不是32bit,4个字节? 为什么要以8个字节来对齐呢?谢谢 解决方案 如果编译器为sse优化,那么是按照128bit,也就是8字节对齐的,如果编译器为sse2优化,那么是按照16字节对齐的.http://www.xuebuyua