1。在c#中异常处理中,catch块和finally 块是可选的,可写成try{ } catch( ){ }或try{} finally{ }。前者,会捕获异常并进行处理,使得异常不再上报。后者,感知异常,做一些处理,但不会捕获异常,异常仍会上报。
2。使用异常处理,能让底层方法报出异常被及时地处理掉而不至于一路捅到.NET框架,进而成为系统级错误。
3。异常处理是被动地处理异常,会消耗不少资源,因此主动防御错误永远比被动处理错误要好。
4。using语法结构
using结构可以实现一定的异常处理。主要指资源释放。C#编译器会将using结构翻译成一个“try{ } finally{ }”结构,并在finally 块中调用释放资源的Dispose方法。
但是using结构没有捕获异常的功能,只能感知异常,并释放相应的资源。
C#中的using结构是针对System.IDisposable接口的,该接口只声明了一个成员“void Dispose()”,用于释放对象所占用的资源。任何实现了IDisposable接口的对象都能被用于using结构。
5。C#中使用指针要使用unsafe{ }语法来创建一个语句块,并在其中使用指针类型。
定义指针变量时,c#中”*“是和基础类型一起使用的,即int * p1,p2,p3;表示声明三个指针变量,而不是像C/C++那样表示一个指针变量,两个int类型。
在c#中,代表int *p1,*p2,*p3;是错误的。
C#不允许 不同指针类型之间 或 指针类型与整型之间 的类型转换。
6。C#支持类似c语言的条件编译功能,支持”#define”、“#undefine”、”#if”等令,但不支持C样式的宏,包括宏常量以及带参数的宏。也不支持“#include”指令。
7。特别注意,在传统C/C++中,字符串是以”\0”作为字符串的结束标识的,而在C#中字符串是可以包含“\0”的,这点在两者之间进行字符串数据传递时应特别注意。
8。注释
在C#中在类型或类型成员前面,使用连续的三个"/"和特定的XML语法实现文档化的注释,C#编译器能提取出代码中的文档化的注释并自动生成相关的SDK帮助文档。
9。从JAVA到C#
不同点:C#支持委托,而JAVA不支持。 C#支持事件,Java不支持。
C#在委托的支持下事件,一个事件上可以绑定多个委托来支持广播;而java需要通过实现的接口的方式来实现事件机制,比较繁琐。
10。尽量降低对技术细节的精力消耗,这是各种应用系统框架出现的原始需求。
11。在实践中,很多商业软件都是“一次开发,长期使用” 的,而是“一次开发,长期修改,长期使用”。因此开发商业需要考虑到未来的修改和升级换代,程序不但要耐用,还要耐看,耐改,程序代码需要具备良好可读性。 给控件设置合适的名称就是一项基础性工作。 其他类似的还有数据库表名字段名,窗体名称、程序模块名等。