C军

不玩博客了!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年1月20日

摘要: MemoryStream 是一个特例,MemoryStream中没有任何非托管资源,所以它的Dispose不调用也没关系。托管资源.Net会自动回收MemoryStream继承自Stream类。内存流的好处是指针可以晃来晃去,也就是支CanSeek,Position,Seek()。任意读其中一段。在内存流中有必要了解一下SeekOrigin枚举枚举成员 成员值 描述Begin 0 指定流的开头。Current 1 指定流内的当前位置。End 2 指定流的结尾。OK,记住了SeekOri... 阅读全文
posted @ 2013-01-20 20:56 逆心 阅读(30347) 评论(6) 推荐(7)

摘要: 数组的注意点:1、相同类型:数组中的数据元素类型都相同2、数据元素:数组中的数据项可以是任何类型,数据元素的类型也代表该数组的类型。访问数组元素通过数组名称和位置索引进行访问。3、有序:数组的元素是依据位置索引的,数组中的位置索引从0开始。4、集合:一个数组是一组数据元素的集合。5、数组类型属于引用类型。6、数组派生自类型System.Array。数组的声明:int[] arr1 = new int[5]; //声明数组的同时指定长度int[] arr2 = new int[5] { 1, 2, 3, 4, 5 }; //声明数组的同时指定长度以及元素 int[] arr = new int[ 阅读全文
posted @ 2013-01-20 17:45 逆心 阅读(544) 评论(0) 推荐(0)

摘要: dynamic类型是C#4.0中引入的新类型,它允许其操作掠过编译器类型检查,而在运行时处理。dynami类型在绝大多数情况下和object类型相似,不同之处在于编译器对于包含了dynamic的表达式不做进一步解析和类型检查。编译器将这些信息收集到一起,用于在运行时鉴定操作。也就是具体类型在运行时程序才知道。实际上,dynamic类型的变量被编译成object类型,因此,dynamic类型实际上只存在于编译期,而运行时并不存在。 先来看一段有趣的代码: static void Main(string[] args) { dynamic d... 阅读全文
posted @ 2013-01-20 16:20 逆心 阅读(2884) 评论(0) 推荐(0)

摘要: as运算符有一定的适用范围,它只适用于引用类型或可以为null的类型,而无法执行其他的转换,如值类型的转换以及用户自定义的类型转换,这类转换应该适用强制转换表达式来执行。as当转换不了的时候返回null而已,as不会抛出异常。 is运算符并不真正执行转换,它只是检查指定的对象是否与给定的类型是否兼容,说白了就是给指定的对象是否能转换为给定类型。 Person p = new Person(); p.Id = 1; p.Age = 23; p.Name = "张飞"; object... 阅读全文
posted @ 2013-01-20 12:21 逆心 阅读(789) 评论(0) 推荐(0)