06 2016 档案

摘要:三、流和序列化 3.1 流概念及.NET中常见流 常见的流类型包括:文件流、终端操作流及网络Socket等,在.NET中,System.IO.Stream类型被设计为作为所有流类型的虚基类,当需要自定义一种流类型时也应该直接或者间接地继承自Stream类型。下图展示了在.NET中常见的流类型以及它们 阅读全文
posted @ 2016-06-25 14:01 王乐 阅读(267) 评论(0) 推荐(0)
摘要:二、常用集合和泛型 2.1 int[]是值类型还是引用类型? .NET中无论是存储值类型对象的数组还是存储引用类型的数组,其本身都是引用类型,其内存也都是分配在堆上的。所有的数组类型都继承自System.Array,而System.Array又实现了多个接口且直接继承自System.Object。、 阅读全文
posted @ 2016-06-25 13:19 王乐 阅读(269) 评论(0) 推荐(0)
摘要:一、字符串处理 1.1 StringBuilder类型 众所周知,在.NET中String是引用类型,具有不可变性,当一个String对象被修改、插入、连接、截断时,新的String对象就将被分配,这会直接影响到性能。在这个组装过程中必将会产生很多临时的String对象,而这些String对象将会在 阅读全文
posted @ 2016-06-25 12:51 王乐 阅读(291) 评论(0) 推荐(0)
摘要:一、面向对象的实现 1.1 C#中的类可以多继承吗? 在C#中申明一个类型时,只支持单继承(即继承一个父类),但支持实现多个接口(Java也是如此)。像C++可能会支持同时继承自多个父类,但.NET的设计小组认为这样的机制会带来一些弊端且没有必要。 首先,看看多继承有啥好处?多继承的好处是更加贴近地 阅读全文
posted @ 2016-06-25 10:22 王乐 阅读(251) 评论(0) 推荐(0)
摘要:二、内存管理和垃圾回收 2.1 .NET中栈和堆 每一个.NET应用程序最终都会运行在一个OS进程中,假设这个OS的传统的32位系统,那么每个.NET应用程序都可以拥有一个4GB的虚拟内存。.NET会在这个4GB的虚拟内存块中开辟三块内存作为 堆栈、托管堆 以及 非托管堆。 (1).NET中的堆栈 阅读全文
posted @ 2016-06-22 23:34 王乐 阅读(214) 评论(0) 推荐(0)
摘要:一、基础类型和语法 1.1 .NET中所有类型的基类是什么? 在.NET中所有的内建类型都继承自System.Object类型。 1.2 值类型和引用类型的区别? 在.NET中的类型分为值类型和引用类型,其共同点是都继承自System.Object,但最明显的区分标准却是是否继承自System.Va 阅读全文
posted @ 2016-06-21 22:14 王乐 阅读(286) 评论(0) 推荐(0)
摘要:ToString()和Convert.ToString()的区别 一般情况下,这两种方法都可以通用,但是当返回的数据类型中有可能出现null值时如果调用ToString方法了,就会返回NullReferenceException,除非你要捕捉此异常再做处理,否则在这种情况下就应考虑使用Convert 阅读全文
posted @ 2016-06-14 22:34 王乐 阅读(1466) 评论(0) 推荐(1)
摘要:在.Net中,对于相同的字符串,.Net会将它们指向同一个地址,它们是相同的实例。.Net中的字符串并不会更新,当更改一个字符串变量时,由于字符串的不可变性,.Net实际上是新创建一个字符串,而将变量地址指向新创建的字符串地址。 CLR默默地维护了一个叫做驻留池(Intern Pool)的表。这个表 阅读全文
posted @ 2016-06-14 22:24 王乐 阅读(243) 评论(0) 推荐(0)
摘要:首先启动.NET Reflector,然后添加进入dll或exe。然后选择Export Source Code...,将反编译后的代码文件,生成到指定目录。 到这一步骤时,稍等一会,就能够在指定目录就能够看到反编译出来的项目文件了 如果此时你注意的话,发现我们反编译出来的代码是没有.sln文件的。 阅读全文
posted @ 2016-06-14 22:16 王乐 阅读(913) 评论(0) 推荐(0)
摘要:在C#中,数组由于是固定长度的,所以常常不能满足我们开发的需求。 由于这种限制不方便,所以出现了ArrayList。 ArrayList、List<T> ArrayList是可变长数组,你可以将任意多的数据Add到ArrayList里面。其内部维护的数组,当长度不足时,会自动扩容为原来的两倍。 但是 阅读全文
posted @ 2016-06-14 22:10 王乐 阅读(724) 评论(0) 推荐(0)
摘要:以前需要将一段json字符串转换为C#对象时,一般都是定义一个与之对应的实体类来接收。这样做有一个很大的缺点,就是当字符串特别长,属性特别多,又有嵌套时,手敲这个实体类就非常痛苦。 比如之前做的一个接收百度七天天气预报的API,层层嵌套,很痛苦。 C# 4.0 之后有了动态类型dynamic。用这个 阅读全文
posted @ 2016-06-14 21:58 王乐 阅读(29269) 评论(4) 推荐(4)