摘要: 之前对委托的理解,一直局限于“委托就类似于C++中强类型的函数指针”。今天听老马跟我一讲,颇有拨云见日之感。 老马今天对我说,委托,就是定义一个传递方法的规范。 大家都说委托是一个类型,事件是个字段成员。那么既然委托是个类型,那里面有哪几部分组成来呢? 一般委托由三部分组成,分别是target,methodPtr和delegateArray。 target指的是该委托所指向的方法的所有者。若委托指向一个静态方法,例如,string.IsNullOrEmpty(),则target=null,若委托是一个实例方法,比如string s="abc",s.SubString(),则 阅读全文
posted @ 2012-10-21 21:18 ζ老豆角 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 赶不上园子讨论三层最热烈的时候,看了几篇.Net三层的博客,手痒写点东西。菜鸟一个,勿拍砖。 一、三层是什么? 三层是多层架构中使用极为频繁的一种架构,三层三层,大体上分为三个层。分别是: 1.数据访问层(DAL)。该层只负责对数据(数据库,xml,json等)的访问。力争做到原子性,独立性。大白话说,DAL就是提供对数据访问的接... 阅读全文
posted @ 2012-10-16 22:51 ζ老豆角 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 第五章 浏览器中的javascript 1. 6.BOM window对象是整个BOM的核心,所有对象和集合都以某种方式回接到window对象。 7.window对象 window对象表示整个浏览器窗口,但不必表示其中包含的内容。此外,window还可用于移动或调整它表示的浏览器的大小,对着对它产生其他影响 window对象有两个实例,top和parent,top始终指向浏览器的顶层窗口,及浏览器自身。而parent对象与 1.窗口操作 moveBy(dx,dy) moveTo(dx,dy) resizeBy(dw,dh) resizeTo(w,h) 直接传number就可以,浏览器窗口碰边就 阅读全文
posted @ 2012-10-11 23:15 ζ老豆角 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 第一章:JavaScript是什么1.起源:做一些输入有效性的验证,减轻浏览器负担2.ECMAScript:JavaScript实现的基础,是标准,但不是javascript唯一的部分。3.javascript组成:核心(ECMAScript),DOM(doucument object model),BOM(brower object model)4.ECMAScript:ECMAScript仅仅是一个描述,定义了脚本语言的所有属性,方法和对象。其他语言可以实现ECMAScript来作为功能的基准,如JavaScript5.DOM:DOM是HTML和XML的应用程序接口(API)。通过创建树来 阅读全文
posted @ 2012-10-10 22:11 ζ老豆角 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 程序集,对于C#程序员来说一定不陌生,不就是VS生成的那些exe,dll么。是的,程序集(.net中exe与dll的区别就是exe有程序接入口, 即Main函数)就是.net框架下,可以被CLR加载并运行的一堆数据集(类似java中的jar包,无法脱离虚拟机自己运行)。它们和之前C\C++ 生成的可执行程序和动态链接库有本质的区别。说了半天,程序集里到底有什么呢。作为一堆数据集,程序集的数据可以分为:类型元数据,程序元数据,IL代码,资源。 先说下什么是元数据,元数据一般就是指描述自身的数据。 程序集元数据:包含程序集的版本信息,安全信息,签名等。类型元数据:记录了程序集将引用了哪些类,用户自 阅读全文
posted @ 2012-10-10 22:07 ζ老豆角 阅读(724) 评论(0) 推荐(0) 编辑
摘要: 学C#的好多人都提反射色变,觉得这是个很高级的东西。好吧,反射使用的技术的确高级,但是我们应用起来却是非常的容易,微软体贴的优点在这时候就凸显出来了。其实反射很简单,它的本质就是去在运行时动态的加载程序集,找出并能得到程序集中包含什么类,方法,属性和字段,并且去调用这些类,方法,属性和字段。 反射常用的类: Assembly 加载程序集用Type核心类,反射调用获得的类就靠是它保存的 阅读全文
posted @ 2012-10-10 22:07 ζ老豆角 阅读(176) 评论(0) 推荐(0) 编辑
摘要: class BigMultiply:BigCalculate {public override string Oper(string num1, string num2){if (num1.Equals("0")||num2.Equals("0")){return "0";}List liAllNum = new List();//存储乘数每位乘法的结果List liCh = new List();//存储乘数每位乘法中每一位的结果//将长度较长的数字赋给num1,方便后面计算if (num1.Length < num2.Len 阅读全文
posted @ 2012-10-10 22:05 ζ老豆角 阅读(386) 评论(0) 推荐(0) 编辑
摘要: class BigReduce : BigCalculate {public override string Oper(string num1, string num2){bool isMinus = false;//先判断计算结果是否为正数(即num1是否大于num2),如果相等,直接返回0//若结果为负数,则互换num1,num2,并在返回值前加'-'if (num1.Equals(num2)){return "0";}else if (Max(num1, num2).Equals(num2))//如果预计计算结果为负数,则将num1num2调换{Cha 阅读全文
posted @ 2012-10-10 22:02 ζ老豆角 阅读(430) 评论(0) 推荐(0) 编辑
摘要: /// ///基类,抽象类,定义常用方法 /// abstractclass BigCalculate {public abstract string Oper(string num1, string num2);//反转数字顺序protected string InvertOrder(string str){char[] chTemp = new char[str.Length];for (int i = 0; i num2.Length){return num1;}else if (num1.Length==num2.Length){for (int i = num1.Length-1;. 阅读全文
posted @ 2012-10-10 22:01 ζ老豆角 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 事件就是一个阉割版的委托。 事件就是一个外部不能访问,并且只能使用“+=、-=”号添加委托的类成员。 为什么事件要做成外部不能访问?如果事件可以被外部访问,那么外部就可以绕过开发者自己定义的接口,直接访问并调用委托,违反了面向对象封装的思想。 为什么事件要只能使用“-=、+=”?因为如果使用者在某一地方使用了“=”号给事件赋值,那么他会惊奇的发现之前添加的事件都被清空了....事件的本质,就是1个私有委托,和两个add、reduce函数(类似属性,实现+=、-=) 阅读全文
posted @ 2012-10-10 21:58 ζ老豆角 阅读(176) 评论(0) 推荐(0) 编辑