首页 新闻 会员 周边

C#普通类中为什么要有泛型方法?

0
[已关闭问题] 关闭于 2013-09-06 16:36

C#普通类中为什么要有泛型方法?工作的机理是怎么样的?

问题补充:

沃茨,受不鸟了,我说 类 总可以了吧?能不能不要这么水?

LiloT的主页 LiloT | 初学一级 | 园豆:6
提问于:2013-08-28 13:01
< >
分享
所有回答(6)
0

啥叫“普通类”?“不普通的类”的又是什么?

Launcher | 园豆:45045 (高人七级) | 2013-08-28 13:07

泛型方法听说过么?

支持(0) 反对(0) LiloT | 园豆:6 (初学一级) | 2013-08-28 16:20

@LiloT: 听说过。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2013-08-28 16:25

@Launcher: 那应该知道我想问什么了吧?

支持(0) 反对(0) LiloT | 园豆:6 (初学一级) | 2013-08-28 16:43

@LiloT: 其实我还是不太明白,因为“类为什么要有泛型方法”,从设计层面讲,这是类的设计者定义的,我们无权干涉;从语法层面讲,泛型可以重用代码,并在一定条件下提升性能。

那么抛开类,只谈 C# 中的泛型的机制的话,那么你可以简单浏览下这篇文章:http://www.cnblogs.com/kid-li/archive/2006/11/29/577045.html

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2013-08-28 16:54
0

把问描述清楚吧。是不是自己定义的类为普通类,系统的DLL中的类为不普通的?

Albert Fei | 园豆:2102 (老鸟四级) | 2013-08-28 14:08

泛型方法听说过么?

支持(0) 反对(0) LiloT | 园豆:6 (初学一级) | 2013-08-28 16:20

@LiloT: 今天听你第一次说, 以前都是用。

支持(0) 反对(0) Albert Fei | 园豆:2102 (老鸟四级) | 2013-08-28 16:42

@Albert Fei: 是不是我普通类意思猜错了。莫非楼主是想说泛型类?才怀疑我听没听过泛型方法?

支持(0) 反对(0) Albert Fei | 园豆:2102 (老鸟四级) | 2013-08-28 16:44
0

给个普通类的解释

jerry-Tom | 园豆:4077 (老鸟四级) | 2013-08-28 16:29
0

泛型的主要功能就是减少重复的编码,可扩展,非泛型类中包含泛型方法也是同样的作用

至于工作的机理跟泛型类的解析是一样的,在你传递类型时候编译器会生成相关强类型的签名方法

具体的可以参考一些泛型底层实现的技术文章,这类文章还是很多的,而且也可以自己写个程序然后

用MSIL反编译成IL代码后观察下~

andy1987 | 园豆:490 (菜鸟二级) | 2013-09-04 19:25
0

泛型提供了一个类的模板,可以让不同类型调用。一般用<T>替代这些类型,调用的时候直接把T换成你想用的类型。建议再去多看看代码,静下心来理解一下。

Vivu | 园豆:450 (菜鸟二级) | 2013-09-05 11:36
0

楼主说的普通类就是一般常规定义的类,非要抓着人家一个口语化的说法一顿说有意思?

但是对于你这个问题我也不好回答,新手刚学习泛型。

Dean-Feng | 园豆:202 (菜鸟二级) | 2016-04-01 13:44

我自己想明白了,泛型的本质在于在类的层次上又抽象了一层,使类或者算法更加通用。在底层编译器在处理的时候会进行展开,比如在处理一个泛型类型T的时候,会用相应的int或者float类型代替。有啥问题可以继续探讨。

支持(0) 反对(0) LiloT | 园豆:6 (初学一级) | 2016-04-02 17:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册