09 2007 档案

摘要:1.Protected internal(意思是protected或者internal),在成员声明是同时选择protected和internal两个修饰符.protected internal的意思是"只有本程序内或者继承于该类的类型可以访问" 2.Namespaces隐式地具有共有访问级别.在声明Namespaces的时候不允许用访问级别修饰符. 3.在编译单元或者Namespaces声明... 阅读全文
posted @ 2007-09-29 00:20 包建强 阅读(513) 评论(0) 推荐(0) 编辑
摘要:功能 适用于 说明 常规 可见性 所有 ... 阅读全文
posted @ 2007-09-28 23:32 包建强 阅读(3945) 评论(0) 推荐(1) 编辑
摘要:CLR以及所有托管语言都不支持多继承,通过接口模拟实现 14.1 类和接口的实现 接口定义:为一组方法签名指定一个名称的方式。 类实现接口,就一定要提供接口所有方法的实现。 即使抽象类,也要全部实现,但是,它可以把接口方法声明为abstract的,从而把这个接口方法留给派生类去实现,如下: public interface ITest { ... 阅读全文
posted @ 2007-09-26 16:34 包建强 阅读(1209) 评论(0) 推荐(0) 编辑
摘要:CLR支持一维/多维/交错数组。 两种声明方式: Array a; a = new String[0, 1]; String[] s = new String[5]; 注意,声明不要给与数组长度,因为此时还不分配内存;new时要指定长度。 将数组声明为Array和像String[]这样带中括号的,效果是一样... 阅读全文
posted @ 2007-09-26 16:33 包建强 阅读(2508) 评论(0) 推荐(0) 编辑
摘要:12.1 枚举类型 强类型,枚举之间进行不能隐式转换 枚举类型直接派生于System.Enum,后者派生于System.ValueType,值类型,可以使用装箱/拆箱 不能定义方法/属性/事件。 同一个枚举中,多个枚举符号有相同的数值,数值转符号时,会返回其中第一个符号。 枚举类型要与使用它的类在同一级。 默认为int,可以指定枚举成员的类型,只有int,uint,byte,sbyte,... 阅读全文
posted @ 2007-09-26 16:32 包建强 阅读(2123) 评论(0) 推荐(0) 编辑
摘要:自定义属性,使用声明式编程的方式,HTML也是属于这种编程方式。 17.1 使用自定义属性 只是将一些附加信息与某个目标元素关联起来。编译器在托管模块的元数据中生成额外的信息。 从System.Attribute派生,所有符合CLS的属性都是从这个基类派生。 有定位参数和命名参数两种,前者必须指定。 可以将多个属性应用于单个目标元素,用逗号分割。 17.2 定义自己的属性 属... 阅读全文
posted @ 2007-09-26 13:37 包建强 阅读(1905) 评论(0) 推荐(0) 编辑
摘要:前言:System.Nullable在FCL中的实现: System.Nullable where T:struct,所以Nullable是一个值类型 有两个只读属性HasValue和Value,以及GetValueOrDefault方法 18.1 C#语法:Int32? 等价于 Nullable,于是可以有: Int32? a = 5; Int32? b = n... 阅读全文
posted @ 2007-09-26 10:36 包建强 阅读(1728) 评论(0) 推荐(0) 编辑
摘要:泛型:支持值类型和引用类型,不支持枚举。 没有泛型属性。 泛型的好处: 源代码保护。使用泛型算法不需要访问算法的源码——相对于C++模板 类型安全——相对于ArrayList 更加清晰的源码——不需要拆箱,显示转换 更佳的性能——不用装箱。测试:循环1000万次,泛型List与ArrayList分别用时0.1s和2s 16.1 FC... 阅读全文
posted @ 2007-09-23 13:05 包建强 阅读(1293) 评论(0) 推荐(0) 编辑
摘要:在UNIX操作系统中,如用".htm",那用户在浏览器窗口看到是网页的源文件,因此UNIX下网页扩展名只能用".html",而对Dos和Windows3.X,文件名受到"8.3"规则限制,扩展名只能用".htm"。对Windows 9X/NT/2000/xp,两者都可以。 阅读全文
posted @ 2007-09-23 13:04 包建强 阅读(711) 评论(0) 推荐(0) 编辑
摘要:5.1基元类型 编译器(C#)直接支持的任何数据类型都称为基元类型(primitive type),基元类型直接映射到FCL中存在的类型。可以认为 using string = System.String;自动产生。 FCL中的类型在C#中都有相应的基元类型,但是在CLS中不一定有,如Sbyte,UInt16等等。 C#允许在“安全”的时候隐式转型——不会发生数据丢失,Int32可以转为Int64... 阅读全文
posted @ 2007-09-17 14:48 包建强 阅读(1243) 评论(0) 推荐(0) 编辑
摘要:4.1 所有类型都派生自System.Object System.Object提供的方法:GetType(),ToString(),GetHashCode(),Equals(),MemberwiseClone(),Finalize() 所有对象都是用new操作符创建,创建过程: 1. 计算对象大小,包括“类型对象指针”和“同步块索引” 2.从托管堆分... 阅读全文
posted @ 2007-09-16 18:01 包建强 阅读(1097) 评论(2) 推荐(0) 编辑
摘要:3.1 两种程序集,两种部署 CLR有两种程序集,弱命名程序集和强命名程序集,二者基本一样,区别:强命名程序集时用发布者的公钥/私钥对 进行了签名,唯一性的标识了程序集的发布者。弱命名程序集只能私有部署,强命名程序集可以使用全局部署,也可以私有部署。 3.2 为程序集指派强名称 一个强命名的程序集包括4部分重要属性,标志唯一:一个无扩展名的程序集,一个版本号,... 阅读全文
posted @ 2007-09-15 08:44 包建强 阅读(1551) 评论(1) 推荐(0) 编辑
摘要:2.1 .NET Framework部署目标 非.NET程序的问题: 1.DLL hell 2.安装复杂。目录分散,注册表,快捷方式 3.安全性。悄悄下载恶意代码 2.2 将类型集成到模块中——编译器工具csc csc /out:Program.exe /t:exe /r:Mscorlib.dll ... 阅读全文
posted @ 2007-09-14 23:34 包建强 阅读(1816) 评论(0) 推荐(1) 编辑
摘要:术语:CLR :Common Language Runtime 公共语言运行期,有多种不同编程语言使用的运行库托管模块:Managed Module,一个标准的MS Window可移植执行体文件(32位PE32或64位PE32+) IL:Intermediate Language 中间语言,又叫托管代码(由CLR管理它的执行)元数据:metadata,一系列特殊的数据表程序集:Assembly,抽... 阅读全文
posted @ 2007-09-14 23:12 包建强 阅读(3213) 评论(1) 推荐(0) 编辑
摘要:重载操作符 要求重载方法的参数至少有一个参数与重载方法的类型一样。 运算符参数不能使用ref/out修饰符。 需许要注意的要点如下: &&和||不能被直接重载,但使用&和|进入计算则可以被重载 [ ]不能被重载,可以使用索引器来代替它完成所需操作 ( )不能被重载,代替此运算符的方式是定义新的转换运算符 ,即隐式/显示转换运算符 逻辑运算符必须成对重载==和!=... 阅读全文
posted @ 2007-09-13 17:14 包建强 阅读(1369) 评论(2) 推荐(0) 编辑
摘要:1.Class的可见性有public和internal两种,public对所有程序集都可见,internal仅对其所在的程序集可见。默认是internal的。2.友元程序集,使用friend assembly可以实现单元测试,而不使用反射技术。书上讲的是按照命令行编译。我测试用的是vs2005的solution,如下:3.成员的可访问性成员默认是private的,接口类型的成员都是public的。... 阅读全文
posted @ 2007-09-12 15:36 包建强 阅读(825) 评论(1) 推荐(0) 编辑
摘要:彷徨了许多天,直到今天,同时在MSN上遇到了老瓦,栋栋和WSO,分别是前辈,同辈和后辈,但都是技术大师级人物,只有和他们交谈才会发自真心的快乐,纯技术的,我迷失的思绪又回到了坐标上,努力啊!谁说做技术没有前途,等我练成神功:WPF+CLR+Ajax+DesignPattern+IDE,也就跻身东邪西毒之中了。 阅读全文
posted @ 2007-09-09 20:52 包建强 阅读(310) 评论(0) 推荐(0) 编辑
摘要:1.实例构造器ctor(引用类型) 创建引用类型的实例时的步骤: 首先,为实例的数据字段分配内存; 接着,初始化对象的系统开销字段(类型对象指针和同步块索引); 最后,调用类型的实例构造器设置对象的初始状态。 ctor不能被继承,不能用virtual,new,override,sealed,abstract。 如果类中没... 阅读全文
posted @ 2007-09-09 18:53 包建强 阅读(1156) 评论(1) 推荐(0) 编辑
摘要:1.常量 常量是永远不会改变的符号。它的值必须在编译时就确定。编译后,CLR将常量的值保存在Assembly的元数据中,这意味着常量必须是基元类型。 常量是类型的一部分,总是被当成静态成员,但并不显示声明为static。 public const Int32 MaxEntriesList = 100; 当代码引用常量时,CLR在元数据中查找该符号,将提取的常... 阅读全文
posted @ 2007-09-09 12:53 包建强 阅读(706) 评论(1) 推荐(0) 编辑
摘要:属性分两种,无参属性,有参属性,后者又叫索引器(indexer)——VB.NET中相应为默认属性。 1.无参属性 CLR支持静态属性,实例属性,抽象属性,虚拟属性,但不能被重载。 属性在MSIL中生成以下内容: get_XX方法,当在属性中定义了get的时候——XX为属性名 set_XX方法,当在属性中定义了set的时候——XX为属性名 一个位于原数据中的属性定义。 属... 阅读全文
posted @ 2007-09-09 11:01 包建强 阅读(1181) 评论(0) 推荐(0) 编辑
摘要:ds 阅读全文
posted @ 2007-09-07 19:59 包建强 阅读(553) 评论(1) 推荐(0) 编辑
摘要:1.对象数据源 之前绑定的都是对象数据源, 2.XML数据源 3.自定义数据源 阅读全文
posted @ 2007-09-07 19:57 包建强 阅读(458) 评论(0) 推荐(0) 编辑
摘要:本节介绍如何绑定一数据集合。 1.CurrentItem 将上节的Person聚集为泛型People类: public class People : List { } XAML文件相应为: Name... 阅读全文
posted @ 2007-09-06 20:50 包建强 阅读(1679) 评论(4) 推荐(0) 编辑
摘要:上网,看八卦,sina,看到自己的同学已经开始创业,唉,又羡慕又嫉妒,hoho,我什么时候也能达成自己的目标啊?不能再耽误时间了,要抓紧一切时间做技术了,最多还有8个月。还有就是,不要再看八卦,切忌!切记! 不该招惹的人不要去招惹! 不该投入精力的事情迅速终止! 不去喝酒,因为会浪费当晚的时间! 再忍一忍,快到站了! 阅读全文
posted @ 2007-09-06 20:11 包建强 阅读(267) 评论(0) 推荐(0) 编辑
摘要:WPF的数据绑定机制 既保证了数据的同步性,又使得数据类型的相应转换正常进行。如下所示: 左边是XMAL的UI元素,右边是cs程序中的Object,中间是数据绑定层,将左右两层连接起来。 那么, 两个层次的语法如下: UI层,有3种表示方式: 方法1: Code highlighting produced by Actipro CodeHighlighter (freeware) h... 阅读全文
posted @ 2007-09-06 17:17 包建强 阅读(822) 评论(0) 推荐(0) 编辑
摘要:这一节是对.NET2.0事件绑定技术的总结。 .NET事件绑定是基于Observer模式的,关于这部分见我的《CLR笔记10.事件》。在.NET2.0中,对Observer进行了一次包装,可以引用System.Component命名空间,实现INotifyPropertyChanged接口,可以获得事件PropertyChanged,以及PropertyChangedEventArgs。于... 阅读全文
posted @ 2007-09-06 16:06 包建强 阅读(1011) 评论(0) 推荐(0) 编辑
摘要:事件也是方法。 定义一个事件成员意味着类型具有三种能力: *类型的静态方法/实例方法可以订阅类型事件 *类型的静态方法/实例方法可以注销类型事件 *事件发生时通知已订阅事件的方法 .NET2.0的事件仍然是基于Win32的,只不过使用了Observer模式来实现,同时建立在Delegate机制之上。 事件的设计步骤如下(基本上是Observer的实现步骤): 10.1... 阅读全文
posted @ 2007-09-05 22:41 包建强 阅读(2379) 评论(1) 推荐(0) 编辑
摘要:项目接近尾声,把从中获取的.NET技术总结如下,为了保密,不涉及企业业务逻辑,只讲技术。 阅读全文
posted @ 2007-09-03 13:11 包建强 阅读(402) 评论(0) 推荐(0) 编辑
摘要:Web/WinForm/通吃,包括ASP.NET,WebService,Remoting,Thread,Serializable,ADO.NET等命名空间 精通UML 精通DesignPatterns 23+N种模式:默写各个模式UML图,熟记代码实现方式,范例,以及.NET相关接口 精通CLR VB.NET/C#通吃 精通OOP理念 精通DB设计与T-SQL,SQL2005就可以了 熟悉AJAX... 阅读全文
posted @ 2007-09-02 18:51 包建强 阅读(4955) 评论(30) 推荐(0) 编辑
摘要:本月继续WPF技术,同时把CLR笔记整理出来,还有IDC项目的技术总结。 WPF计划:啃掉上次没看完的e书,500个Smaple分析。 任务艰巨哦!每天要坚持写Blog哦! 阅读全文
posted @ 2007-09-01 23:24 包建强 阅读(340) 评论(0) 推荐(0) 编辑