摘要: 原文地址:http://www.cnblogs.com/cuihongyu3503319/archive/2007/11/15/960315.html 阅读全文
posted @ 2013-04-28 19:11 tc庄稼汉 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。也希望对大家的开发工作或者测试工作有所帮助。使用Fiddler工具非常方便地捕获HTTP Request和HTTP Response, 关于Fiddler工具的用法参考Fiddler使用教程什么是HTTP协议协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是 阅读全文
posted @ 2013-04-18 13:55 tc庄稼汉 阅读(292) 评论(0) 推荐(0) 编辑
摘要: Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大的帮助。Fiddler的基本介绍Fiddler的官方网站:www.fiddler2.comFiddler官方网站提供了大量的帮助文档和视频教程, 这是学习Fiddler的最好资料。Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语 阅读全文
posted @ 2013-04-18 11:16 tc庄稼汉 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 关于协变和逆变要从面向对象继承说起。继承关系是指子类和父类之间的关系;子类从父类继承所以子类的实例也就是父类的实例。比如说Animal是父类,Dog是从Animal继承的子类;如果一个对象的类型是Dog,那么他必然是Animal。协变逆变正是利用继承关系 对不同参数类型或返回值类型 的委托或者泛型接口之间做转变。我承认这句话很绕,如果你也觉得绕不妨往下看看。如果一个方法要接受Dog参数,那么另一个接受Animal参数的方法肯定也可以接受这个方法的参数,这是Animal向Dog方向的转变是逆变。如果一个方法要求的返回值是Animal,那么返回Dog的方法肯定是可以满足其返回值要求的,这是Dog向 阅读全文
posted @ 2012-09-17 20:49 tc庄稼汉 阅读(675) 评论(0) 推荐(0) 编辑
摘要: 互联网经过这么多年的发展,已经出现了众多的 Web 开发技术,像 .Net/Java/PHP/Python/Ruby 等等。对于 Web 开发人员来说,不管是初学者还是有一定经验的开发人员都需要时刻学习新的开发技术。如今,网上有各种开发技术的相关网站,有大量开发资料可以参考。下面是我收集的15个非常优秀的学习 Web 开发技术的国外网站,如果大家有收藏更好的网站,欢迎推荐!Net Tuts+是学习Web开发技术最著名的网站之一,订阅者超过10万,分享各种适合不同阶段的开发人员阅读的优秀教程。CSS TricksCSS Tricks是学习CSS的最佳去处,发布关于CSS各个方面的教程,想加强CS 阅读全文
posted @ 2012-08-10 23:37 tc庄稼汉 阅读(563) 评论(0) 推荐(0) 编辑
摘要: 以自增运算符为例,当自增运算符++作用于一个变量时,例如:当i=3时++i这个算术表达式的值为4,同时变量i的值也由原来的3改变为4。一般情况下,计算表达式后不改变变量本身的值,而++运算符和--运算符组成的表达式计算后,则改变变量的值,这称为运算符的副作用。这类运算符在计算表达式时,一定要注意区分表达式的值和变量的值。2 注意前缀运算和后缀运算的区别 仍以自增运算符为例,该运算符可作用在变量之前,例如前面所讲的++i,称为前缀运算;也可作用在变量之后,例如i++,称为后缀运算。在这两种运算中,表达式的值不同:前缀运算后,表达式的值为原变量值加1;后缀运算后,表达式的值仍为原变量值;而变... 阅读全文
posted @ 2012-08-06 21:23 tc庄稼汉 阅读(19940) 评论(0) 推荐(1) 编辑
摘要: 2012-08-05©tc庄稼汉 迭代器是一种方法、get 访问器或运算符,它通过使用 yield 关键字对数组或集合类执行自定义迭代。 yield 返回语句会导致源序列中的元素在访问源序列中的下一个元素之前立即返回给调用方。 尽管您以方法的形式编写迭代器,但编译器会将其转换为一个实际上是状态机的嵌套类。 只要客户端代码中的 foreach 循环继续进行,此类就会跟踪迭代器的位置。 将使用 foreach 语句从客户端代码中调用迭代器。 例如,您可以为类创建一个迭代器,该迭代器将按相反顺序返回元素,或在迭代器返回元素之前对每个元素执行操作。 在为类或结构创建迭代器时,您不必实现整个 阅读全文
posted @ 2012-08-05 17:02 tc庄稼汉 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 1.先看看它俩共同所属的命名空间System.Collections System.Collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表、队列、位数组、哈希表和字典)的集合。类说明ArrayList使用大小会根据需要动态增加的数组来实现 IList 接口。BitArray管理位值的压缩数组,该值表示为布尔值,其中 true 表示位是打开的 (1),false 表示位是关闭的 (0)。CaseInsensitiveComparer比较两个对象是否相等,比较时忽略字符串的大小写。CaseInsensitiveHashCodeProvider已过时。 使用忽略字符串大小写. 阅读全文
posted @ 2012-08-05 13:50 tc庄稼汉 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 先看override的情况:public class A{ public A() { Console.WriteLine('A'); } public virtual void Fun() { Console.WriteLine("A.Fun()"); }}public class B : A{ public B() { Console.WriteLine('B'); } public override void Fun() { Console.WriteLine("B.F... 阅读全文
posted @ 2012-08-01 00:49 tc庄稼汉 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 1.重载(overload) 用于同一类中或是父子关系类中。它提供了一种机制,相同的函数名通过不同的返回值类型及参数来表示区分的机制。2.覆写(override) 使用override修饰符修饰方法、属性、索引和事件。它不能重写非虚拟方法或静态方法,重写的基方法必须是虚拟的、抽象或者重写的。也就是说,用override重写的基方法的必须是virtual、abstract或者override。3.本质区别: 覆写(override)的基方法和覆写方法两个函数的函数特征相同;重载(overload)的两个函数函数名虽然相同,但是函数特征不同。 (PS:函数特征包括函数名、参数的个数和类型) 阅读全文
posted @ 2012-07-31 23:37 tc庄稼汉 阅读(1866) 评论(0) 推荐(0) 编辑