黑马程序员技术交流社区

标题: 贴点零碎的笔记分享给大家(四) [打印本页]

作者: 邓艳秋    时间: 2012-11-17 16:36
标题: 贴点零碎的笔记分享给大家(四)
1.装箱,拆箱---string s="123"  int n=Convert.ToInt32(s)---这个不叫拆箱
   int x=100; string s=x.Tostring()----这个不叫装箱。装箱与拆箱是发生在父子类中。无论是发生装箱或者是拆箱,对程序的性能影响比较大。所以写代码的时候习题避免装箱与拆箱。---使用泛型集合,增加元素的时候没有发生装箱,所以泛型的性能高。装箱时使用什么类型,拆箱也得使用同样的类型来拆,否则报错。
2.var类型。2.1在C#中,var修饰的值,依然是强类型,在编译时就确定了类型。2.2var只能出现在局部变量中。2.3var不能作为方法的参数类型,也不能作为方法的返回值类型。
3.where T:struct----表示泛型只能是值类型。
  where T:class表示泛型只能是引用类型。
where T:I... 表示泛型只能实现某个接口
对于泛型方法调用的时候,可以指定泛型,也可以不指定泛型。
4.foreach:可以被遍历的类型的要求:1,具有GetEnumerator()方法的类型。2,实现IEnumerator接口的类型。3,实现IEnumerator<T>接口的类型。一般我们可以实现IEnumerator()接口。一个类型只要实现了IEnumerable接口,就说这个类型可以被遍历,因为实现该接口后,就会有一个叫做GetEnumerator()的方法,而该方法就是实现遍历的。

作者: 许庭洲    时间: 2012-11-17 22:23
值得学习ing!
作者: 穆爱明    时间: 2013-7-9 08:59
学习一下,感谢分享!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2