- 1、本文档共52页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.6 C#语言中的其他成分 编译预处理 1.标识符声明 #define定义一个标识符; #undef“取消定义”一个标识符。 2.条件处理 #if, #elif, #else, #endif 3.信息报告 #error 和 #warning 4.行号标记 #line 行号 文件名 unsafe及指针 1.unsafe 用于修饰类、方法等 2.fixed及指针 fixed( 类型 * 指针名 = 表达式 ) 语句 3.sizeof运算符 sizeof( 简单或结构类型名 ) 4.stackalloc 在栈上分配的内存,而不是在堆上,因此不会担心内存被垃圾回收器自动回收。 UnsafeCopy.cs C# And Pointers Developers sometime need total control Performance extremes Dealing with existing binary structures Advanced COM Support, DLL Import C# “unsafe” = a limited “inline C” Pointer types, pointer arithmetic Unsafe casts Declarative pinning (fixed statement) C# developers have headroom Unsafe Example class FileStream: Stream { int handle; [dllimport(kernel32, SetLastError=true)] static extern unsafe bool ReadFile(int hFile, void* lpBuffer, int nBytesToRead, int* nBytesRead, Overlapped* lpOverlapped); public unsafe int Read(byte[] buffer, int index, int count) { int n = 0; fixed (byte* p = buffer) { ReadFile(handle, p + index, count, n, null); } return n; } } 其他关键字 1.lock 多线程程序中,lock可以将某个对象加锁 2. volatile 随时可能被程序以外的其他因素所修改。域被volatile修饰时,会阻止编译器对它的优化。 C#几个语法的小结 类型声明 类的成员 类型声明 类型声明是C#程序的主体,它可以位于名字空间中,也可以是嵌套的类型。 类型声明包括以下几种: 1) 类 class 2) 结构 struct 3) 接口 interface 4) 枚举 enum 5) 委托 delegate 类的成员 1) 常数(const) 它代表了与类相关的常数数据。 2) 域(field) 它是类中的变量。 3) 方法(method) 它实现了可以被类实现的计算和行为。 4) 属性(property) 它定义了命名的属性和与对这个属性进行读写的相关行为。 5) 事件(event) 它定义了由类产生的通知 6) 索引(indexer) 它允许类的实例通过与数组相同的方法来索引。 类的成员(续) 7) 操作符(operator) 它定义了可以被应用于类的实例上的表达式操作符。 8) 实例构造函数(instance constructor) 它执行需要对类的实例进行初始化的动作。 9) 析构函数(destructor) 类的实例被清除时实现的动作(结构不能有析构函数)。 10) 静态构造函数(static constructor) 它执行对类本身进行初始化的动作。 11) 类型(type) 它代表位于类中的类型。 4.7 程序的调试 错误的种类 代码的错误通常可以分成三大类 语法错误 运行错误 逻辑错误 其中语法错误比较容易排除,也是一种低级的错误。运行错误和逻辑错误需要靠经验、调试工具以及不断的深入代码来排除。 语法错误 此类型的错误通常发生在程序员对语言本身的熟悉度不足 如if之后忘了加上大括号、For语句少了分号。还有比如定义一个变量是Student,但是在引用的时候不小心就变成studnet了。还有一种情况是调用函数错误的语法。 例如调用SubString函数少传了一个参数。使用Visual Studio.NET开发工具,多数的错误会在编辑程序的时候发现。 逻辑错误 逻辑错误(Logic Erro
文档评论(0)