VC#编绎分为两部分一个是从程序代码到IL(中间语言)
二个是从中间语言到机器语言(JIT编绎器)
编绎参数
CSC.EXE把VC#程序代码骗译成IL文件
@ 指定响应文件
/debug 发送调试信息
/debug+ 就会建立一个PDB文件把调试信息写入文件
/debug-不会建立PDB文件,默认选项
/doc 把处理的文档注释为XML文件
/out 批定输出文件
/reference 从包含集合的文件中导入元数据
/target 指定输出文件的格式
/target:exe 创建一个可执行(.exe)的控制台应用程序
/target:libarary 创建一个代码库DLL
/target:winexe 创建一个WINDOWS程序(.exe)
/target:modeule创建一个模块(DLL)
值类型
C#语言数据类型主要分为两类:值类型和引用类型
值类型分成三类:简单类型,结构类型,枚举类型
简单类型分为布尔类型(true和false),数据类型分为整型(sbyte,byte,short,ushort,int,uint,long,ulong,char),浮点(float,double),decimal主要用于金融货币等对精度要求较的计算机环境
结构类型关键字:struct
枚举类型关键字:enum
引用数据类型:
C#提供以下几种引用类型:
对象类开
类类型
接口
代表元
字符串类型
数组
字符串类型:字符串类直接派生自对象,且客观存在是被密封的
定义数给 new 类型[,,,,]
装箱和拆箱
就是使得C#类型系统中,任何值类型\引用类型和对象(object)类型之间都可以进行转换(绑定连接),这样就可以把任何类型都看成是OBject类型.
装箱:就是任何一个值类型隐式地转换成一个对象类型;拆箱正好相反就是对象转换成相应的数据类型
变量和常量
C#中,变量命名与C++不同的是,允许在变量名前加前缀"@",这种情况下就可以使用前缀"@",加上关键字作为变量的名称,这主要是为了与其它语言进行交互时不冲突,但单独用使C#进行编程时,不推荐使用"@",作为变量名的一部分.
常量就是固定不变的量,从数据类型的角度看,常量的类型可以是任何一种值类型或引用类型.
流程控制
与C/C++不同的事if后面的表达式就能是BOOL型表达式.
swithch中没有break.C#会报错
循环中C#中引入了foreach
条件编译
C#中有两种方法进行编绎的方法:预处理用法和条件属性
第3章 面向对象的C#
类与对象
构造函数和析构函数
方法
域和属性
代表
继承
类:C#的类是一种包括数据成员,函数成员和其他类型的数据结构,其中,数据成员可以是常量或域。函数成员可以是方法、属性、索引器、事件、操作符、实例构建器、静态构建器和析构器
限制修饰符
public 可以被任意存取。不限制该类的访问
protected 只可以被所在类和其派生的子类进行访问
internal 只有其所在类可以访问
protected internal 惟一的一种组合限制修饰,它只可以由其所在类和这些类所派生的子类访问
private 只有包含在.net中的应用程序或是库才能访问
abstract 用来修饰抽象类,表示该类只难作为其类被用于继承,而不能进行对象实例化。抽象类可以包含抽象的成员但不是必须的,abstract不能和new同时用
对象类的实例化
this 关键字
只有在实例方法中才用this来引用变量,this关键字引用当前对象实例的成员。在实例方法体内可以省略this
构造函数用于执行类的实例初始化,每个类都有构造函数。在访问类的方法、属性或是任何其它东西之前,和一条执行的语句是包含有相应类的构造函数,甚至自己不写一个构造函数,也会有一个默认的构造函数提供。
析构函数:在类的实例超出范围的时候,经常希望能够叫回它所占用的存储空间,析构函数正是这个作用
方法
修饰方法和关键字有:
new public protected internal private static virtual sealed override adbstract extern
63
方法参数
传 值 :传值参当无需客外的修饰符
传址:传址参数需要修饰符ref
传出参数:输出参数需要修饰符out
数组参数:数组参数需要修饰符params
需要注意的是重写(new)方法和覆盖(override)方法的不同,从本质上讲重写法是编译时绑定,而覆盖方法是运行时绑定。紫外线方法不可以是静态方法,也变是说不可以用static和virual同修饰一人方法,这由它的运行时类型辨析所决定。override心须和virtual配合使用,当然不能和static同时使用.
外部方法
C#引入了extern修饰符来表示外部方法,外部方法以外的语言实现的方法,比如win32 API函数
域和属性
静态域和非静态域,其中静态域的声明是用static其他的域都是非静域,如果将一个类声明为静态域,当这个类的第一个实例建立时,域就被初始化了,以后再进行类的初始化时,就不再对其进行初始化。
只读域,C#引入了readonly修饰符来表示只读域,只有在域的定义和它所属类的构造函数中可以进行修改。
继承
83
C#高级编程
命名空间的声明使作关键字namespace后命名空间主体,然后还可以跟一个分号。
错误和异常处理
异常处理
try块包含的代码组成了程序的正常操作部分,但是可能遇到某些严重的错误
Catch块包含的代码处理各种错误情况
Finally 包含的代码清理资源或执行要在try块末尾执行的其它操作
第5章 WEBSERVICE基础
web service 体系结构:web service 是自含的模块化的就髟程序,它可以在网络中被描述、发布、查肛以及调用.
web service 的优点
增强互操作性
即时整合
通过封装降复杂性
使传统遗留系统获得新生
web serivce 体系
部暑
发布
返回
web service有以下三种组件
服务提供者
服务代理
服务请求者
108
web service 有以下三种操作
在布/不发布
发现
绑定
web service 体系结构描述
所谓web service 它是由企业
web service 平台组成部分
最基本的web service 平 台是XML加HTTP
全面的web service 平台是XML+HTTP+SOAP+WSDL+UDDI。在更高层次上,可能还要加一一些尚未广泛接受的技术如XAML,XLANG,XKMS和XFS
SOAP是一个协议规范即简单对象访问协议(simple object access protocol)定义了传递XML-ed数据时的统一universal description Discovery and integration 它提供了在web 上描述并发现商业服务的框架。
如何使用UDDI基本步骤
编写调用远程WEB service 的程序时,程序员使用UDDI 商业注册中心来定位businessEntity信息,这些信息是由提供该web service的企业注册
程序员可以进一步获得更说细的BusinessService信息或是得到一个完整的BusinessEntity结构。因为BusinessEntity结构包含了有关已布的web service的所有信息因此程序员只需简单地选择一个bindingTemplate并保存留待以后使用
基于web service在BindingTemplate的tmode
l中提供了调用规范的相关信息程序员可以按照该web service的调用规范编写程序
在运行时程序可以按需要使用已保存下来的BindingTemplate的信息serervice
112
WSDL:web service定义语言
WSDL是用来描述网络服务或是终端的一种XML语言,它用于定义web service以及如何调用它们。WSDL文档可用于动态以岂有此理web service查找已以布的web service以及绑定web service
WSDL为服务提供者提供了描述构奸在不同协议或编码方式之上的WEB SERVICE请求基本格式的方法。WSDL用来描述一个WEB SERVICE能做什么、它的位置在哪里如何调用它等等。