首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

定义一个范形的方法,为什么要在方法名的最后加下<T>求指教

2012-09-02 
定义一个范形的方法,为什么要在方法名的最后加上T,求指教比如说定义一个这样的范形方法:public static v

定义一个范形的方法,为什么要在方法名的最后加上<T>,求指教
比如说定义一个这样的范形方法: public static void ForEach2<T>(this List<T> list, Action<T> action){//函数体}
为什么要在方法名的后面加上<T>,只是个方法名而已,不是取什么都可以吗?为什么不能这样定义:
public static void ForEach2(this List<T> list, Action<T> action){//函数体}
谁能告诉我一下,谢谢了,这里有点想不明白,我知道会报错,但是原理是什么呢?

[解决办法]
函数名是ForEach2
<T>是对类型参数的声明
因为函数声明了类型参数,所以它是一个泛型函数。

你后面那种不声明类型参数的语法明显很混乱
List<T>:编译器怎么知道T是一个类型参数还是一个你写错了名字的实际类型呢?对代码阅读者来说就更混乱了。
也就是没有显式地将泛型函数和非泛型函数区分开来。

[解决办法]
定义 就是这样...
有啥想不明白的呢
那 A==B?1:2;你能想明白么?
[解决办法]
参考C++类模板
T是类的指代,用于指定该方法所要用到的类型。 public static void ForEach2(this List<T> list, Action<T> action){//函数体} 这里需要的是指明的类型,要明确。

热点排行