摘要: 当属性添加到用户控件中之后,理解其时间的执行顺序变的相当重要。从本质上来说页面使用如下顺序来进行初始化:1. 请求页面2. 创建用户控件时,如果为属性制定了默认值,或在类构造函数中进行了初始化操作,那么这一步将被应用3. 应用在用户控件标签中的任何属性。4. 执行页面上的 Page_Load 事件,潜在地初始化用户控件5. 执行用户控件上的Page_Load事件,潜在地初始化用户控件 阅读全文
posted @ 2012-03-02 21:16 Jacky IT 阅读(133) 评论(0) 推荐(0)
摘要: 通过使用 try / catch / finally 语句可以捕获异常。把可能引发异常的代码放入try块中,并且把处理异常的代码置入catch块中,也可以编写finally块,它总是运行,而不用考虑try块的运行情况。Finally块对于try块后清除资源非常有用。对Web应用程序来说,发生不可预知的错误和异常在所难免,我们必须为Web程序提供错误处理机制。当错误发生时,我们必须做好两件事情:一是将错误信息记录日志,发邮件通知网站维护人员,方便技术人员对错误进行跟踪处理;二是以友好的方式提示最终用户页面发生了错误,而不能将未处理的错误信息显示给用户。///在CVReport中显示出异常文件。t 阅读全文
posted @ 2012-02-06 20:23 Jacky IT 阅读(109) 评论(0) 推荐(0)
摘要: 1. 指针地址运算符 &int y=5;int *yPtr;//赋值yPtr=&y;间接引用运算符或复引用运算符 *& 和 *是逆运算 *&yPtr 、&*yPtr 、yPtr 都是等价的。指针与数组可以将数组赋值给指针,是的指针指向数组的第一个元素。当然,这有一个前提,即数组元素的类型和指针指向的类型是相同的。可见,在C++中,数组和指针有着密切的关系,二者甚至可以互换使用:数组名可以视为一个指针,只是这个指针的值在数组声明后就不能变化,这种指针称为常量指针,通过指针也可以访问数组的每个元素。此外,数组元素也可以是指针。函数指针虽然函数不是变量,但其代 阅读全文
posted @ 2012-02-01 00:03 Jacky IT 阅读(201) 评论(0) 推荐(0)
摘要: 委托的定义:使用委托在委托对象的内部封装对某个方法的引用。委托是类型安全的,可靠的托管对象。相当于函数指针。委托总是指向一个有效的对象,并且不会破坏其他对象所在的内存。使用委托的场景:声明委托 - 实例化委托 - 调用委托 //声明委托 delegate void MyDelegate1(string s); public class MyClass { public static void Hello(string s) { // do something1 } public... 阅读全文
posted @ 2012-01-30 23:28 Jacky IT 阅读(306) 评论(0) 推荐(0)
摘要: 1.argumentsAn array-like object corresponding to the arguments passed to a function.arguments.callee Reference to the currently executing function.arguments.caller ---arguments.callee.caller (Obsolete) Reference to the function that invoked the currently executing function.arguments.length Refe... 阅读全文
posted @ 2012-01-30 19:13 Jacky IT 阅读(187) 评论(0) 推荐(0)
摘要: 所谓的页面生存周期,指的是一个 ASP.NET 页面对象从初始化到销毁经过的步骤。在通常情况下,一旦某个请求对应到一个ASP.NET 页面时,一个直接或间接继承自Sysytem.Web.UI.Page类型的对象开始初始化,并且开始执行页面生存周期中的所有步骤。而该类型的对象,就是客户端请求的ASP.NET 页面的后台托管代码。ASP.NET页面生存周期各步骤的功能大致分类:1. 初始化2. 加载数据和页面3. 触发时间4. 保存状态并呈现页面1. 初始化 - PreInit 、 Init 、InitComplete 三个步骤2. 加载数据和页面 LoadState ProcessPostDat 阅读全文
posted @ 2012-01-30 17:00 Jacky IT 阅读(1582) 评论(0) 推荐(0)
摘要: 1.求数组中和最大的子序列2. 快速排序基本思想在于把排序对象分割为两列子序列,而其中一个子序列的值都大雨另一子序列,并且进一步递归排序所有子序列 static void Run(int[] data, int low, int high) { //简单设定中间值,并以此为一趟快排的分割点 //注意这是一个简单的算法 //如果想对这个算法进行优化的话,可以采取随机的方法来获取分割点 int middle = data[(low + high) / 2]; int i ... 阅读全文
posted @ 2012-01-29 18:51 Jacky IT 阅读(567) 评论(0) 推荐(0)
摘要: /* Append the names of the enumerable properties of object o to the array a, and return a. If a is omitted or null, create and return a new array */ function copyPropertyNamesToArray(o, /*optional*/a) { if (!a) a = []; ///If undefined or null , use a blank array for (var perperty in o) a.push(perpe. 阅读全文
posted @ 2011-06-23 10:55 Jacky IT 阅读(176) 评论(0) 推荐(0)
摘要: 000000 000020 000040 000060 000080 0000a0 0000c0 0000ff 002000 002020 002040 002060 002080 0020a0 0020c0 0020ff 004000 004020 004040 004060 004080 0040a0 0040c0 0040ff 006000 006020 006040 006060 006080 0060a0 0060c0 0060ff 008000 008020 008040 008060 008080 0080a0 0080c0 0080ff 00a000 00a020 00a04. 阅读全文
posted @ 2011-06-11 23:25 Jacky IT 阅读(227) 评论(0) 推荐(0)
摘要: 1. 闭包的例子 uniqueID = function () { if (!arguments.callee.id) arguments.callee.id = 0; return arguments.callee.id++; }// uniqueID = (function () {// var id = 0;// return function () { return id++; };// })(); alert(uniqueID()); alert(uniqueID()); alert(uniqueID()); alert(uniqueID());前一种方法的问题在于,任何人都可以把 阅读全文
posted @ 2011-06-05 20:12 Jacky IT 阅读(241) 评论(0) 推荐(0)