摘要: 在复制目录和文件时,如果需要显示操作进度框。可以引入Microsoft.VisualBasic组件实现。 (1)引用Microsoft.VisualBasic。(2)代码如下:using System;using System.Collections.Generic;using System.Text;using Microsoft.VisualBasic.FileIO; class FileProgressDialog { static void Main() { string sourcePath = @"... 阅读全文
posted @ 2012-07-04 20:35 蒹葭白露 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 在c#中可以遍历指定驱动器或指定目录下嵌套目录中的所有文件或者任意深度的文件。通过遍历可以检索string形式的目录名和文件名,也可以检索 System.IO.FileInfo 或 System.IO.DirectoryInfo 对象形式的其他信息。可以通过递归遍历和堆栈遍历两种方式实现目录遍历。递归遍历 递归算法简单,但嵌套树太深,可能会引起堆栈溢出异常。 /// <summary> /// 通过递归方式访问目录树 /// </summary> class RecursiveAccessDirectory { //声明并实例化一个字符串集合 ... 阅读全文
posted @ 2012-06-28 20:35 蒹葭白露 阅读(2439) 评论(0) 推荐(0) 编辑
摘要: 常用格式格式格式说明d月中的某一天。一位数的日期没有前导零。dd月中的某一天。一位数的日期有一个前导零。M月份数字。一位数的月份没有前导零。MM月份数字。一位数的月份有一个前导零。yy不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。yyyy包括纪元的四位数的年份。h12 小时制的小时。一位数的小时数没有前导零。hh12 小时制的小时。一位数的小时数有前导零。H24 小时制的小时。一位数的小时数没有前导零。HH24 小时制的小时。一位数的小时数有前导零。m分钟。一位数的分钟数没有前导零。mm分钟。一位数的分钟数有一个前导零。s秒。一位数的秒数没有前导零。ss秒。一位数的 阅读全文
posted @ 2012-06-28 20:33 蒹葭白露 阅读(3032) 评论(0) 推荐(0) 编辑
摘要: 当有很多事件,大多数事件不会实现时,可以使用字典存储事件实例,这也是事件选择器的典型用法。 public delegate void EventHandler1(int i); public delegate void EventHandler2(string s); public class PropertyEvent { Dictionary<string, System.Delegate> eventTable; public PropertyEvent() { eventTable = new D... 阅读全文
posted @ 2012-06-25 22:59 蒹葭白露 阅读(1098) 评论(0) 推荐(0) 编辑
摘要: 在类中实现接口事件 可以在接口中声明事件,然后在类中实现该事件的引用。在为方法订阅事件时,可以订阅接口声明的事件,也可以订阅类中的事件。 class InterfaceEvent { static void Main(string[] args) { Shape s = new Shape(); IDrawingObject ido = s; //为HandlerShapeChanged方法订阅接口中声明的事件 ido.ShapeChanged += ... 阅读全文
posted @ 2012-06-25 19:45 蒹葭白露 阅读(2269) 评论(0) 推荐(0) 编辑
摘要: (1)事件是特殊的委托,所以只可以在声明它的类中调用。在基类中声明一个事件,所以可以在基类中调用,而不能在派生类中直接调用。但有些情况下,需要在派生类中引用基类事件,实现方法是,在基类中定义一个受保护的方法引用事件,然后在派生类中重写基类方法,利用base关键字实现间接调用基类事件。(2)派生类调用基类事件。 class DerivedClassEvent { static void Main(string[] args) { Circle c = new Circle(10); Console.WriteLi... 阅读全文
posted @ 2012-06-17 23:37 蒹葭白露 阅读(997) 评论(0) 推荐(0) 编辑
摘要: (1)不生成事件数据。.NET Framework 类库中的所有事件均基于EventHandler委托。EventHandler是一个预定义委托,当不生成数据随事件一起发送时,该委托无需声明,因为它已在创建 C# 项目时包含的System命名空间中进行了声明。EventHandler委托定义如下: //sender 是引发事件的对象 //e 是不包含任何数据的事件数据对象。 public delegate void EventHandler(object sender, EventArgs e);不生成事件数据直接声明如下: public... 阅读全文
posted @ 2012-06-17 23:22 蒹葭白露 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 类或对象可以通过事件向其他类或对象通知发生的相关事情。 发送(或引发)事件的类称为“发行者”,接收(或处理)事件的类称为“订阅者”。一个简单事件实例 //发行者 public class Student { private string name; //定义一个带参委托 public delegate void DelegateRegisterFinish(string name); //定义一个事件 public event DelegateRegisterFinish EventRegisterFin... 阅读全文
posted @ 2012-06-12 23:43 蒹葭白露 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 委托声明和实例化 (1)通过与委托签名相同的方法的方法名声明实例化委托 //声明委托 public delegate void Del(string message); //与委托签名相同的方法 //签名相同即参数列表相同,返回值类型相同 public static void DelegateMethod(string message) { Console.WriteLine(message); } //通过与委托签名相同的方法实例化委托 Del ... 阅读全文
posted @ 2012-06-11 02:02 蒹葭白露 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 当页的大部分需要随请求动态更新,而页的某一小部分不需要随时更新,可把该部分放在用户控件中,然后设置该用户控件可缓存。设置用户控件缓存在用户控件文件(.ascx 文件)的顶部用@ OutputCache指令声明。<%@ OutputCache Duration="120" VaryByParam="None" %> 也可以在用户控件类上用PartialCaching特性声明。PartialCaching可以带多个参数。 //设置缓存时间为5秒 [PartialCaching(5)] public partial class CacheContr 阅读全文
posted @ 2012-06-06 00:16 蒹葭白露 阅读(1770) 评论(0) 推荐(0) 编辑