随笔分类 -  C#

C#技术类文章
.NET快速查找某个类所在的命名空间
摘要:有时候我们从网上copy别人的代码下来,对于某些不熟悉的类,需要添加对某个类的引用时,如何快速找出某个类所在的命名空间呢例如有如下的一段代码:现在要添加ConfigurationElement类的引用,那么首先要找出ConfigurationElement类所在的命名空间操作步骤如下图所示:找到ConfigurationElement类所在的命名空间后,就可以添加ConfigurationElement类的引用了 阅读全文

posted @ 2014-02-08 22:50 孤傲苍狼 阅读(1611) 评论(0) 推荐(2) 编辑

.Net高级技术——IDisposable
摘要:IDisposable概述 GC(垃圾收集器)只能回收托管(Managed)内存资源,对于数据库连接、文件句柄、Socket连接等这些资源(非托管资源,UnManaged)就无能为例,必须程序员自己控制资源的回收。非托管资源:SqlConnection、FileStream等。 对于使用非内存资源的类,完全可以自己定义一个销毁资源的方法来供程序员回收,.net推荐实现IDisposable接口(为了规范非托管资源的回收),在Dispose方法中进行回收。 实现了IDisposable接口的对象都可以使用using进行资源管理。using就是帮我们做了:1 FileStream fs = ... 阅读全文

posted @ 2014-02-08 22:01 孤傲苍狼 阅读(1862) 评论(0) 推荐(1) 编辑

.Net高级技术——对象序列化
摘要:对象序列化“序列化是将一个对象保存到存储介质上或者将对象进行转换使之能够在网络上传送的行为”。通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是从文件或者数据库中取出数据再转化成原来的对象使用。对象是稍纵即逝的,不仅程序重启、操作系统重启会造成对象的消失,就是退出函数范围等都可能造成对象的消失,序列化/反序列化就是为了保持对象的持久化。就像用DV录像(序列化)和用播放器播放(反序列化)一样。能对一个类进行序列化的条件是:该类的任何基类可序列化;该类应用了Serializable特性。在.net framework中,有三种序列化机制:二进制、XML和简单对象访问协 阅读全文

posted @ 2014-02-08 21:53 孤傲苍狼 阅读(1497) 评论(0) 推荐(1) 编辑

.Net高级技术——字符串拘留池(Intern)
摘要:一、深入理解字符串的不可变特性string可以看做是char的只读数组。charc=s[1]C#中字符串有一个重要的特性:不可变性,字符串一旦声明就不再可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改。如果要对char进行修改,那么就必须创建一个新的字符串,用s.ToCharArray()方法得到字符串的char数组,对数组进行修改后,调用newstring(char[])这个构造函数来创建char数组的字符串。一旦字符串被创建,那么char数组的修改也不会造成字符串的变化。常见疑问:“谁说字符串不可变?string s1 = "abc" 阅读全文

posted @ 2014-02-08 21:47 孤傲苍狼 阅读(2818) 评论(3) 推荐(0) 编辑

.Net高级技术——垃圾收集器
摘要:垃圾收集器概述 大排档和学校食堂。一个是别人帮你收拾盘子,一个是自己收拾盘子。 垃圾收集GC(Garbage Collection)。内存的分配、回收不需要程序员操心,程序员只要需要的时候new就可以,用完了不用管,有人帮你清除不用的内存。这个人就是“垃圾收集器”。.Net程序员一般不用像C++程序员那样处理内存的申请和回收,是因为有GC。GC优点:程序员不用关心内存的申请和回收,缺点:不用的内存不能立即得到回收(GC并不会实时去回收不用的内存,而是找时机才回收)。 当对象一定不再有用的时候GC就可以将对象回收了(悲观!)。判断一个对象是否一定不再有用的标准就是没有任何的变量指向它。当一... 阅读全文

posted @ 2014-02-08 21:16 孤傲苍狼 阅读(1151) 评论(0) 推荐(0) 编辑

.Net高级技术——结构体
摘要:结构体结构体和类的区别:结构体是值类型,类是引用类型结构体非常类似于类,但是值类型(拷贝传递),不能被继承Int32、DateTime等都是结构体,从ValueType继承,值类型。结构体测试程序: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Drawing; 6 namespace 结构体 7 { 8 class Program 9 {10 static void Main(string[... 阅读全文

posted @ 2014-02-08 21:04 孤傲苍狼 阅读(1891) 评论(0) 推荐(1) 编辑

.Net高级技术——程序集
摘要:程序集(Assembly),可以看做是一堆相关类打一个包,相当于java中的jar包(*)。打包的目的:程序中只引用必须的程序集,减小程序的尺寸;一些程序集内部的类不想让其他程序集调用。我们调用的类都是位于各个程序集中,如果调用的类在没有引用的程序集中,则需要添加对那个程序集的引用,比如ConfigurationManager。类的访问级别:private、public、protected访问级别约束:子类访问级别不能比父类高(等级观念),因为子类能够出席的场合父类都应该能出席,如果父类可访问级别比子类低就有了父类去不了的场合(儿子能去的地方爹一定要能去)类如果不标注访问级别则是interna 阅读全文

posted @ 2014-01-18 22:08 孤傲苍狼 阅读(1174) 评论(0) 推荐(0) 编辑

Stopwatch的使用
摘要:1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace Stopwatch的使用 8 { 9 class Program10 {11 12 /// 13 /// 使用Stopwatch比较for循环和foreach循环的效率14 /// 15 /// 16 sta... 阅读全文

posted @ 2014-01-18 21:12 孤傲苍狼 阅读(5278) 评论(0) 推荐(1) 编辑