08 2012 档案
摘要:Observer设计模式主要包括两类对象:1.Subject:监视对象,其往往包含其他对象感兴趣的内容。在烧水报警模型中,热水器就是一个监视对象。它包含其他对象感兴趣的内容,temprature字段。2.Observer:监视者,他见识Subject,当Subject中某事件发生时,会告知Observer,而Observer会采取相应行动。在烧水报警中事情发生顺序:1.警报器和显示器告诉热水器,它对它的温度感兴趣(注册)。2.热水器知道后保留对警报器和显示器的引用。3.热水器进行烧水这一动作,当水温超过95度,通过警报器和显示器的引用,自动调用警报器和显示器中相应方法。using System
阅读全文
摘要:接着委托:声明之前要定义委托。实际应用中:public class GreetingManager{//在类内部声明delegate变量 public GreetingDelegate delegate1; public void GreetPeople(sting name){ if(delegate1!=null){ delegate1(name); } }}GreetingManager gm=new GreetingManager();gm.delegate=EnglishGreeting;gm.delegate+=ChineseGreeting;gm.Gr...
阅读全文
摘要:使用方法名做参数的函数委托的定义://定义了委托,它定义了可以代表的方法的类型。有一个字符串为参数无返回值的方法public delegate void GreetingDelegate(string name)private static void EnglishGreeting(string name){Console.WriteLine("Moring,"+name);}private static void ChineseGreeting(string name){Console.WriteLine("早上好,"+name);}GreetPeop
阅读全文
摘要:1. DataTable.Select(),数据筛选,有四个重载,不带参数的重载Select()的意思是获取所有的行数组,并按主键进行排序。2. DataTable.Clone(),复制表结构,也就是对象的深拷贝,在c#里面,有浅拷贝和深拷贝的区别。浅拷贝,只拷贝对象的数据,对对象的修改,都将影响到原对象。深拷贝,会从新分配一个地址,保存一个对象,对新对象的修改,不会影响到原有程序。3. DataTable .Copy(),复制datatable结构和数据。4. DataTable.ImportRow(),将特定的DataRow对象从一个表复制到另一个表。
阅读全文
摘要:#region //一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它 private delegate void SetPos(int ipos); private void SetTextMessage(int ipos) { if (this.InvokeRequired) { SetPos setpos = new SetPos(SetTextMessage); this.Invoke(se...
阅读全文
摘要:这是一个延迟执行(Deferred excution)的问题。当调用where时,实际得到的不是集合,而是运算表达式,直到ToList时,他才成为对应的集合。在你的循环中,运算式中的变量值发生了变化(category),等同于如下代码,所以 levellist1 levellist2在执行时运算了相同的结果。
阅读全文
摘要:取出数据 SqlConnection conn = new SqlConnection(@"data source=.;uid=sa;pwd=yzj;database=_Test"); conn.Open(); SqlCommand cmd = new SqlCommand("select Img from Image", conn); SqlDataReader reader = cmd.ExecuteReader(); reader.Read(); while (rea...
阅读全文
摘要:/// <summary> /// 为DataTable指定行中的生成缩略图 /// </summary> /// <param name="dataTable">数据源</param> /// <param name="dataTableImageColumnName">要生成缩略图的数据源的列名</param> /// <param name="appendSmallPicColumnName">新增缩略图数据列的列名</param>
阅读全文
摘要:Assembly.Load("程序集名称").CreateInstance("名称空间.类名称")就是说,我们可以在实例化的时候,再给计算机一个类的名称字符串,来让计算机知道应该实例化哪一个类。//实例化方法一 //原来我们把一个类实例化是这样的Animal animal=new Cat(); //声明一个动物对象,名称叫animal,然后将animal实例化成猫类的对象//实例化方法二//我们还可以用反射的办法得到这个实例using System.Reflection;//先引用System.Reflection//假设当前程序集是AnimalSyst
阅读全文