09 2011 档案
摘要:如果在为方法声明参数时未使用 ref 或 out,则该参数可以具有关联的值。可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值。通过使用方法参数关键字,可以更改这种行为。paramsparams关键字可以指定在参数数目可变处采用参数的方法参数。在方法声明中的params关键字之后不允许任何其他参数,并且在方法声明中只允许一个params关键字。示例:字面意思比较难懂,所以看示例很有用。 1 // keywords_params.cs 2 3 using System; 4 5 class App 6 { 7 public static void UseParams(p...
阅读全文
摘要:在C#中,ref的意思是按引用传递。可以参考C++:1 int a = 10, b = 20; 2 void swap(int x, int y) 3 { 4 int temp = x; 5 x = y; 6 y = temp; 7 } 如果简单的调用这个swap,比如:swap(a, b),那么你根本没办法交换这两个变量的值,因为x和y都是形参,在swap返回的时候,x和y都被释放了。但如果是这样定义swap:1 void swap (int& x, int& y) 2 { 3 int temp = x; ...
阅读全文
摘要:从C#的程序编译的角度来看,它和其它一般的函数有什么区别呢?一般函数在编译时就静态地编译到了执行文件中,其相对地址在程序运行期间是不发生变化的,也就是写死了的!而虚函数在编译期间是不被静态编译的,它的相对地址是不确定的,它会根据运行时期对象实例来动态判断要调用的函数,其中那个申明时定义的类叫申明类,那个执行时实例化的类叫实例类。如:飞禽 bird = new 麻雀();那么飞禽就是申明类,麻雀是实例类。具体的检查的流程如下1、当调用一个对象的函数时,系统会直接去检查这个对象申明定义的类,即申明类,看所调用的函数是否为虚函数;2、如果不是虚函数,那么它就直接执行该函数。而如果有virtual关键
阅读全文
摘要:类(Class)面向对象思想来源于对现实世界的认知。现实世界缤纷复杂、种类繁多,难于认识和理解。但是聪明的人们学会了把这些错综复杂的事物进行分类,从而使世界变得井井有条。比如我们由各式各样的汽车抽象出汽车的概念,由形形色色的猫抽象出猫的概念,由五彩斑斓的鲜花抽象出花的概念等。汽车、猫、鲜花都代表着一类事物。每一类事物都有特定的状态,比如汽车的品牌、时速、马力、耗油量、座椅数,小猫的年龄、体重、毛色,鲜花的颜色、花瓣形状、花瓣数目,都是在描述事物的状态。每类事物也都有一定的行为,比如汽车启动、行驶、加速、减速、刹车、停车,猫捉老鼠,鲜花盛开。这些不同的状态和行为将各类事物区分开来。面向对象编程也
阅读全文
摘要:1 #region 冒泡排序算法 2 //首先将所有待排序的数字放入工作列表中 3 //从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换 4 //重复2号步骤,直至再也不能交换 5 public class BubbleSort 6 { 7 public void Sort(int[] list) 8 { 9 int i, j, temp;10 j = 1;11 while (j < list.L...
阅读全文
摘要:播放MP3url为MP3文件的路径,width,height为播放器大小 1 private string mp3(string url, int width, int height) 2 { 3 return @"<object id='mplayer' width='460' height='68' classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95' codebase='http://activex.microsoft.com/activex/con
阅读全文
摘要:http://www.cnblogs.com/phoebus0501/archive/2010/12/05/1897245.html上图就是这个项目的总体结构图,从图中可以看出该程序分为这几大块:连接侦听线程、连接对象队列、发送线程池、接收线程池、分发线程、事件处理对象、监控处理对象。下面我将描述下整个连接处理过程:1、 连接侦听线程循环接收一个连接请求,如果有连接请求过来,则返回一个连接Socket对象,否则该线程就阻塞等待,直到有一个连接请求过来。2、 封装该返回的Socket对象(主要是封装获取完整包数据,发送方法,关闭方法等)成Connection对象,并把封装好的Connection
阅读全文
摘要:volatile和synchronized的区别:1.volatile本质是在告诉jvm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取;synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住。2.volatile仅能使用在变量级别;synchronized则可以使用在变量、方法、和类级别的。3.volatile仅能实现变量的修改可见性,并能保证原子性;而synchronized则可以保证变量的修改可见性和原子性。4.volatile不会造成线程的阻塞;synchronized可能会造成线程的阻塞。 5.volatile标记的变量不会被编译器优化;
阅读全文
摘要:View Code 1 点击按钮打开网页窗体,弹出另一个窗体,如果不添加history.back(-1);这一句,网页可能会乱窜2 3 Response.Write("<script> window.open('../Pages/helpPage.html','_blank');history.back(-1);</script>");
阅读全文
摘要:View Code 1 import java.text.ParseException; 2 import java.text.SimpleDateFormat; 3 import java.util.Calendar; 4 import java.util.GregorianCalendar; 5 import java.util.Hashtable; 6 import java.util.Scanner; 7 import java.util.regex.Matcher; 8 import java.util.regex.Pattern; 9 10 public cl...
阅读全文
摘要:1、不做重复的设计。2、做重复的设计一定做的不重复。3、不用已经用过的元素。4、用用过的元素一定要用的不留痕迹。5、实在没有思路的时候,去“抄”别人的设计。6、抄别人的设计一定要抄别人为什么这样设计。7、找到前人的制高点继承,一定比每次从零开始做更高。8、做设计不是简单的画图,一定要开拓非设计的知识面,否则就是美工。9、当大家都在用白色时,我用黑色。10、当大家都在用黑色时,我把黑色用的不一样。11、对自己作品一定有信心让自己得意。12、得意不超过两天,第三天开始讨厌自己的作品。13、如果还是很得意,那就把作品展示给更多的人看。14、一定要向最***难的观众学习,这就是下一次可以创新的点。15、创
阅读全文
摘要:LINQ to XML 轴定义:创建XML树或将XML文档加载到XML树之后,可以进行查询,从而查找元素并检索它们的值。两类轴方法:-一些轴就是XELement和XDocument类中返回IEnumerable(T)集合的方法。-另一些轴方法是Extensions类中的扩展方法。实现为扩展方法的轴对集合进行操作,然后返回集合。XContainer是XElement的基类!-常见的轴方法:-XContainer.Elements()返回集合-XContainer.Descendants()返回集合-XContainer.Element()返回单个元素-XElement.Attribute(XNa
阅读全文
摘要:1、LINQ to XML类以下的代码演示了如何使用LINQ to XML来快速创建一个xml:view plaincopy to clipboardprint?publicstaticvoidCreateDocument(){XDocumentxdoc=newXDocument(newXDeclaration("1.0","utf-8","yes"),newXElement("Root","root"));xdoc.Save(path);} public static void CreateD
阅读全文
摘要:要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/dom4j包下载地址:http://download.csdn.net/source/3532614解开后有两个包,仅操作XML文档的话把dom4j-1.6.1.jar加入工程就可以了,如果需要使用XPath的话还需要加入包jaxen-1.1-beta-7.jar.以下是相关操作:一.Document对象相关1.读取XML文件,获得document对象. SAXReader reader = new SAXReader(); Doc...
阅读全文
摘要:java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送、者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型。下面有两种方式。public static byte[] int2byte(int res) {byte[] targets = new byte[4];targets[0] = (byte) (res & 0xff);// 最低位 targets[1] = (byte) ((res >> 8) &
阅读全文
摘要:对象转数组,数组转对象 序列化一个对象,反序列化一个对象就是如此Java代码package com.digican.utils; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import com.digican.javabean.TestBean; publi...
阅读全文