#泛型

JVM如何理解Java泛型类(转)

一个很典型的泛型(generic)代码。T是类型变量,可以是任何引用类型:publicclassPair<T>{privateTfirst=null;privateTsecond=null;publicPair(Tfir,Tsec){this.first=fir;this.second=sec;}publi...

当list做gridview的数据源时,可以用泛型来对list进行排序

当list做gridview的数据源时,可以用泛型来对list进行排序,代码如下vartemps=fromtinlistorderbyt.paymentAmountdescendingselectt;GridView1.DataSource=temps.ToArray();GridView1.DataBind();...

【转】编写高质量代码改善C#程序的157个建议——建议45:为泛型类型参数指定逆变

 建议45:为泛型类型参数指定逆变逆变是指方法的参数可以是委托或者泛型接口的参数类型的基类。FCL4.0中支持逆变的常用委托有:Func<intT,outTResult>Predicate<inT>常用委托有:IComparer<inT>下面例子演示了泛型类型参数指定逆变所...

【转】编写高质量代码改善C#程序的157个建议——建议43:让接口中的泛型参数支持协变

 建议43:让接口中的泛型参数支持协变除了上一建议中提到的使用泛型参数兼容接口不可变性外,还有一种办法是为接口中的泛型声明加上out关键字来支持协变,如下所示:interfaceISalary<outT>//使用out关键字{voidPay();}staticvoidMain(string[]ar...

【转】编写高质量代码改善C#程序的157个建议——建议42:使用泛型参数兼容泛型接口的不可变性

 建议42:使用泛型参数兼容泛型接口的不可变性让返回值类型返回比声明的类型派生程度更大的类型,就是“协变”。如:publicEmployeeGetAEmployee(stringname){Console.WriteLine("我是雇员:"+name);returnnewProgram...

【转】编写高质量代码改善C#程序的157个建议——建议35:使用default为泛型类型变量指定初始值

 建议35:使用default为泛型类型变量指定初始值 有些算法,比如泛型集合List<T>的Find算法,所查找的对象可能会是值类型,也有可能是引用类型。在这种算法内部,我们常常会为这些值类型或引用类型变量指定默认值。于是,问题来了:值类型变量的默认初始值是0值,而引用类型变量的默认初...

【转】编写高质量代码改善C#程序的157个建议——建议34:为泛型参数设定约束

 建议34:为泛型参数设定约束“约束”这个词可能会引起歧义,有些人肯能认为对泛型参数设定约束是限制参数的使用,实际情况正好相反。没有“约束”的泛型参数作用很有限,倒是“约束”让泛型参数具有了更多的行为和属性。查看下面代码,我们会发现参数t...

【转】编写高质量代码改善C#程序的157个建议——建议33:避免在泛型类型中声明静态成员

 建议33:避免在泛型类型中声明静态成员在上一建议中,已经理解了应该将MyList<int>和MyList<string>视作两个完全不同的类型,所以,不应该将MyList<T>中的静态成员理解成MyList<int>和MyList<string>共...

【转】编写高质量代码改善C#程序的157个建议——建议32:总是优先考虑泛型

 建议32:总是优先考虑泛型泛型的优点是多方面的,无论泛型类还是泛型方法都同时具备可重用性、类型安全性和高效率等特性,这是非泛型和非泛型方法无法具备的。 以可重用性为例:classMyList{privateint[]items;publicintthis[inti]{get{returnitems...

【转】编写高质量代码改善C#程序的157个建议——建议20:使用泛型集合代替非泛型集合

 建议20:使用泛型集合代替非泛型集合在建议1中我们知道,如果要让代码高效运行,应该尽量避免装箱和拆箱,以及尽量减少转型。很遗憾,在微软提供给我们的第一代集合类型中没有做到这一点,下面我们看ArrayList这个类的使用情况:ArrayListal=newArrayList();al.Add(0);al.Ad...

【转】编写高质量代码改善C#程序的157个建议——建议129:泛型类型参数要以T作为前缀

 建议129:泛型类型参数要以T作为前缀作为一种约定,泛型类型的参数要以T作为前缀。如委托声明:Action<T1,T2>其中,泛型类型参数名不应该处理成:Action<Arg1,Arg2>当然,这仅仅是一种习惯,若果使用第二种命名方式,编译器并不会报错,但是作为调用者,也许不能意识到...

自定义简单泛型实例.

泛型:类型安全,复用性,扩展性,性能提高(在用的时候指定特定的类型,避免了装箱和拆箱动作.)publicclassmyClass<T>whereT:struct//约束T只能是值类型(int、decimal、double...).{publicT_pvalue;publicTPValue{get{retur...

scala 学习笔记(03) 参数缺省值、不定个数参数、类的属性(Property)、泛型初步

继续学习,这一篇主要是通过scala来吐槽java的,同样是jvm上的语言,差距咋就这么大呢?作为一个有.NET开发经验的程序员,当初刚接触java时,相信很多人对java语言有以下不爽(只列了极小一部分):1.一堆的setter/getter方法,没有c#中的property属性概念2.方法的参数值,不能设置缺省值3...

25.C++- 泛型编程之函数模板(详解)

本章学习:1)初探函数模板2)深入理解函数模板3)多参函数模板4)重载函数模板 当我们想写个Swap()交换函数时,通常这样写:voidSwap(int&a,int&b){intc=a;a=b;b=c;}但是这个函数仅仅只能支持int类型,如果我们想实现交换double,float,strin...

26.C++- 泛型编程之类模板(详解)

在上章25.C++-泛型编程之函数模板(详解) 学习了后,本章继续来学习类模板 类模板介绍和函数模板一样,将泛型思想应用于类.编译器对类模板处理方式和函数模板相同,都是进行2次编译类模板通常应用于数据结构方面,使得类的实现不在关注数据元素的具体类型,而只关注需要实现的功能比如: 数组类,链...
首页上一页...678910下一页尾页