文章分类 -  C#基础

摘要:Asp.Net页面生命周期我们都知道,浏览器的作用就是将用户请求的内容封装成HTTP报文的形式,然后通过Socekt套接字和域名解析服务器(DNS)将域名转成ip地址发送到服务器。服务器端的Windows操作系统分为两个部分,IIS运行在用户模式下,而监听80端口的那部分是运行在内核模式HTTP.SYS(内核模块也是一个插件机制。socket通信机制在内核模块中,内核模块也是一种通信机制)下的,属于HTTP处理的内核模块,内核模式可以监听当前机器所有的Http请求,并将当前请求进行简单解析,确定协议的类型请求的端口,访问注册表,确定当前的请求需要交给IIS进行处理。IIS接收到请求之后,访问I 阅读全文
posted @ 2013-08-14 13:38 derryliang 阅读(96) 评论(0) 推荐(0)
摘要:装箱和拆箱 装箱就是将值类型用引用类型包装起来转换为引用类型;而从引用类型中拿到被包装的值类型数据进行拆箱。 装箱过程其实就是把值类型拷贝到堆中,拆箱可以在引用类型中直接找到值类型存在的位置。如果一段代码中有装箱和拆箱的操作,在Reflector反编译器中,查看中间代码生成的IL语言,会有box,unbox命令。 例如: N.Tostring()其实是在n中创建了一个对象 Int m=int.Psrse(s);这个不叫拆箱 Int n=10; Conosle.Wtitline(n); Object o=n;//一次装箱 console.WriteLine((int)o);//这是一次拆箱 Co 阅读全文
posted @ 2013-08-14 13:34 derryliang 阅读(125) 评论(0) 推荐(0)
摘要:接口的作用接口中只能包含方法:(属性,事件,索引器也都是方法)接口中的成员都不能有任何实现。接口不能被实例化接口中的成员不能有任何访问修饰符(默认为public)实现接口的子类必须将接口中的所有成员都实现子类实现接口的方法时,不需要任何关键字接口存在的意义就是为了多态接口解决了多继承的问题。(抽象类不同)当不同类型需要实现多态时,无法抽象出公共的父类,这时可以考虑使用接口,比如鸟和飞机都能飞,但是他们不能抽象出来一个类。 阅读全文
posted @ 2013-08-14 13:32 derryliang 阅读(121) 评论(0) 推荐(0)
摘要:.NET垃圾回收机制 GC是垃圾收集器(GarbageCollection)。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。GC只能处理托管内存资源的释放,对于非托管资源(例如:文件句柄,网络端口等)则不能使用GC进行回收,必须由程序员手工回收,一个例子就是FileStream或者SqlConnection需要程序员调用Dispose进行资源的回收。 要请求垃圾收集,可以调用下面的方法:GC.Collect()一般不需要手动调用GC.Collect()。当一个对象没有任何变量指向(不再能使用)的时候就可以被回收了。但是,除非明确知道必须要进行垃圾回收才用这个,否则不用这个。(不要随便调 阅读全文
posted @ 2013-08-14 13:31 derryliang 阅读(444) 评论(0) 推荐(0)
摘要:带有命名方法的委托与带有匿名方法的委托在 2.0 之前的 C# 版本中,声明委托的唯一方法是使用命名方法。C# 2.0 引入了匿名方法,而在 C# 3.0 及更高版本中,Lambda 表达式取代了匿名方法,作为编写内联代码的首选方式。不过,本主题中有关匿名方法的信息同样也适用于 Lambda 表达式。有一种情况下,匿名方法提供了 Lambda 表达式中所没有的功能。匿名方法使您能够省略参数列表,这意味着可以将匿名方法转换为带有各种签名的委托。这对于 Lambda 表达式来说是不可能的。匿名方法由关键字delegate、可选的参数列表和包含在 { 和 } 分隔符中的语句列表组成。如果匿名方法没有 阅读全文
posted @ 2013-04-11 11:20 derryliang 阅读(150) 评论(0) 推荐(0)
摘要:转载自:http://www.cnblogs.com/edison1105/archive/2012/07/31/2617518.html1. 如何创建嵌套的过滤器//允许你减少集合中的匹配元素的过滤器, //只剩下那些与给定的选择器匹配的部分。在这种情况下, //查询删除了任何没(:not)有(:has) //包含class为“selected”(.selected)的子节点。.filter(":not(:has(.selected))")2. 如何重用元素搜索var allItems = $("div.item"); var keep... 阅读全文
posted @ 2013-04-11 10:12 derryliang 阅读(88) 评论(0) 推荐(0)
摘要:1、首先看一个简单的例子int[] myArray = { 1, 32, 43, 343 }; IEnumerator myie = myArray.GetEnumerator(); myie.Reset(); while (myie.MoveNext()) { int i = (int)myie.Current; Console.WriteLine("Value: {0}", i); }相信很多人都不会像上面这样去遍历myA... 阅读全文
posted @ 2013-04-11 10:08 derryliang 阅读(358) 评论(0) 推荐(0)
摘要:不难,诀窍就是利用LINQ的GroupBy方法,然后依靠返回结果的IGrouping接口的Count属性来判断是否是重复元素。代码://重复元素:3,4,5//不重复元素:1,8,9int[] arr = { 1, 3, 3, 3, 4, 5, 4, 5, 8, 9, 3 };//不重复元素var unique = arr.GroupBy(i => i) .Where(g => g.Count() ==1) .Select(g => g.ElementAt(0));foreach (var i in unique) Console.WriteLine(i);//分割线Cons 阅读全文
posted @ 2013-04-10 13:56 derryliang 阅读(920) 评论(0) 推荐(0)