C#学习笔记 自学使用_第1页
C#学习笔记 自学使用_第2页
C#学习笔记 自学使用_第3页
C#学习笔记 自学使用_第4页
C#学习笔记 自学使用_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C C 自学笔记 研究生团队 C 学习笔记V1 0 1 学习目的 1 1 熟熟悉悉C 的的开开发发环环境境Vistual Studio2008 1 2 掌掌握握c 的的语语法法 2数数据据类类型型 数据类型分为值类型和引用类型 值类型的变量总是包含着自身的数据 而引用 类型的变量是指向实际数据的地址 2 1 值值类类型型 值类型 简单类型 结构类型 枚举类型 简单类型分为整数类型 布尔类型 字符类型和实数类型 2 2 引引用用类类型型 引用类型包括类 接口 代表 数组 2 3 装装箱箱和和拆拆箱箱 装箱和拆箱使我们可以把一个值类型当作一个引用类型来看待 装箱转换是指将一个值类型隐式地转换成一个object 类型 拆箱转换是指将一个object 类型显式地转换成一个值类型 它们互为逆过程 3变变量量 常常量量和和类类型型转转换换 3 1 变变量量 1 声明变量 变量名只能是数字 字母和下划线 必须以字母开头 2 变量的类型 静态变量 非静态变量 数组元素 值参数 引用参数 输出参 数 还有静态变量 研究生团队 C 学习笔记V1 0 1 3 2 常常量量 常量声明 修饰符 const type name 修饰符 new public protected internal private 3 3 类类型型转转换换 1 隐式转换 就是系统默认的 不需要加一声明就可以进行的转换 规则 任何类型A 只要其取值范围完全在类型B 的取值范围内 就可以隐形转换 为类型B 2 显式转换 转换时需要用户明确的指定转换的类型 转换的规则 显式数值转换 显式枚举转换 显式引用转换 4表表达达式式 4 1 操操作作符符 1 优先级 类型操作符 初级 x x y f x a x x x new type of sizeof checked unchecked 一元 x x T x 乘 除 加减 移位 关系 is as 等式 逻辑与A a new A 数组创建表达式 例如int arr new int 10 代表创建表达式 例如delegate double DFunc int x DFunc f new DFun 5 2 typeof 操作符 用于获得系统原型对象的类型 3 checked 和unchecked 操作符 用于整型算术运算时控制当前环境中的溢出检查 注意 1 当运算产生一个目标类型无法表示的大数时 在使用了 checked 操作符的 表达式 如果是常量表达式 则产生运行时错误 否则 当运行时会溢出异常 2 在使用unchecked 操作符的表达式中 返回值被截掉不符合目标类型的高位 5流流程程控控制制 C 提供以下控制关键字 选择控制If else switch case 循环控制while do for foreach 跳转语句break continue 编译控制 if elif else endif 异常处理try catch finally 研究生团队 C 学习笔记V1 0 1 5 1 条条件件语语句句 5 1 1 if 语语句句 1 格式 if 布尔表达式为真 语句 或if 布尔表达式为真 语句 else 语句 注意 1 每一条else 与离他最近且没有其它else 与之对应的if 相搭配 2 C 的if 语句与C C 不同 即if 后的逻辑表达式必须是布尔类型的 5 1 2 switch 语语句句 1 格式 switch 控制表达式 case 常量表达式 embedded statements default embedded statements 注意 1 最多只能有一个default 标签 2 不准遍历 在C 中 要求每个标签项后使用break 语句或跳转语句goto 即不允许 从一个case 自动遍历到其它case 否则编译时将报错 3 在C 中标签的引用值允许时null 5 2 循循环环语语句句 5 2 1 while 语语句句 while 语句有条件地将内嵌语句执行0 遍或若干遍 格式为 while 布尔表达式 语句 注意 while 语句中允许使用break 语句结束循环 执行后续语句 也可以continue 语句来停止内嵌语句的执行 继续进行while 循环 研究生团队 C 学习笔记V1 0 1 5 2 2 do while 语语句句 它将内嵌语句执行一次 至少一次 或若干次 格式为 do embedded statement while 布尔表达式 5 2 3 for 语语句句 格式 for 变量初始化 循环条件 循环控制 embedded statement 5 2 4 foreach 语语句句 c 特特有有的的 格式 foreach type identifier in expression embedded statement 其中类型 type 和标识符 identifier 用来声明循环变量 表达式 expression 对 应集合 5 3 条条件件编编译译 5 3 1 使使用用预预处处理理指指令令 定义符号和取消符号定义的预处理指令 define 和 undef 符号定义必须放在所有其他语句的前面 例如 define COUNT undef 也必须放在所有其他语句的前面 例如 undef COUNT 5 3 2 条条件件编编译译 四种 if elif else endif 它们在程序中的出现的先后顺序 一条 if 语句 必须有 零或多条 elif 语句 零或一条 else 语句 一条 endif 语句 必须有 4 发出错误和警告信息 相对应的指令是 warning 和 error 5 4 异异常常处处理理语语句句 1 溢出的处理 1 检测整个程序 c 编译器设置面板中的checked 选项 checked 研究生团队 C 学习笔记V1 0 1 2 局部检测 用checked 语句和unchecked 对可能发生溢出的模块进 行检测 2 异常的处理 1 throw 语句 throw 语句抛出一个异常 throw 表达式 2 异常处理语句 异常由try 语句来处理 有3 种可能的形式 try catch s try finally try catch s finally 6类类 6 1 类类的的声声明明 1 格式 属性集 修饰符 class name 继承方式 基类名 属性 修饰符 继承方式 基类名为可选项 2 修饰符 修饰符说明 public不限制对该类的访问 protected只能从所在类和子类进行访问 internal只有所在类才能访问 private只有对包 Net 中的应用程序或库才能访问 abstract抽象类 不允许建立类的实例 sealed封装类 不允许被继承 3 使用类的实例 使用new 关键字可以建立类的一个实例 6 2 类类的的成成员员 包括以下类型 成员常量 域 成员方法 属性 事件 索引指示器 操作符 构造函数和析构 函数 研究生团队 C 学习笔记V1 0 1 6 2 1 字字段段 对象的属性和状态用变量来描述 变量在类里叫做该类的字段 字段名必须满 足变量名的命名规则 当一个字段声明中含有static 修饰符时 由该声明引入的字段为 静静态态字字段段 它只 标识了一个存储位置 不管创建了多少个类实例 静态字段都只会有一个副本 当一个字段声明中不含有static 修饰符时 由该声明引入的字段为 实实例例字字段段 类 的每个实例都包含了该类的所有实例字段的一个单独副本 6 2 2 方方法法 方法用来描述对象的行为 1 方法的定义包括返回类型 方法名 方法的参数和方法体四个部分 定义方式示例 返回类型 方法名 参数列表 方法名 int add int x int y Int r r x y return r 2 方方法法是一种用于实现可以由对象或类执行的计算或操作的成员 静静态态方方法法只 能通过类来访问 实实例例方方法法则要通过类的实例访问 在静态方法中不能访问非静态的类成员 包括非静态的方法成员和数据 成员 但非静态成员方法中可以人已访问静态成员 3 方法有一个参参数数列表 可能为空 表示传递给方法的值或者引用 方法 还有返返回回类类型型 用于指定由该方法计算和返回的值的类型 如果方法不返回一个 值 则它的返回类型为void 4 在声明方法的类中 该方法的签名必须是惟一的 方法的签名由它的名称 参数的数目 每个参数的修饰符和类型组成 返回类型不是方法签名的组成部分 研究生团队 C 学习笔记V1 0 1 6 2 3 方方法法的的重重载载 1 在c 语法中 语法规定同一个类中两个或两个以上的方法可以用同一个名 字 那么该方法就可以被称为重载方法 2 重载方法定义规则 必须是同一个类中的方法 满足方法名相同 参数不同 指参数个数不同或参数个数相同而参 数类型不同 与方法的访问修饰符的返回值无关 6 2 4 属属性性 1 声明 访问修饰符 数据类型 属性名 get set 可以赋值和检索值 访问修饰符静态属性应用于整个类而不是类的实例 static 数据类型 属性名 get set 只能访问类的静态成员 2 属性的类型 读写属性 public string Name get return name set name value 只读属性 public string Name get return name 只写属性 public string Name set name value 研究生团队 C 学习笔记V1 0 1 6 2 5 索索引引器器 1 定义方式 访问修饰符 数据类型 this get set 2 使用索引器时的注意事项 a this 关键字用于定义索引器 b 必须指定至少一个索引器参数 可以指定多个参数 c 索引器不一定根据整数值进行索引 有你自己引器参数的类型 d 索引器的 里面可以是任意参数的列表 6 2 6 委委托托 委托是一种安全的封装方法的类型 1 步骤 定义委托 实例化委托 使用委托 2 使用委托 语法 访问修饰符 delegate 返回值类型 委托名称 参数列表 6 2 7 事事件件 事件使用委托来为触发时将调用的方法提供类型安全的封装 1 步骤 定义事件 访问修饰符 event 委托名 事件名 给对象预定该事件 通知事件的订户 研究生团队 C 学习笔记V1 0 1 7OOP 技技术术 7 1 继继承承 1 作用 将新类作为另一个类的后代来申明和使用 避免重复编写代码 提高代码的重用性 2 类型 单一继承 多重继承 注意 C 只支持单一继承不支持多重继承 在C 中使用接口来实现这一功能 7 1 1 创创建建和和使使用用继继承承 语法 访问修饰符 class 类名1 父类或基类 类的主体 访问修饰符 class 类名2 派生类或子类 类名1 类的主体 7 1 2 密密封封类类 密封类 不能被继承的类 密封类不能作为基类 语法 访问修饰符 sealed class 类名 类的主体 7 1 3 抽抽象象类类 1 特性 抽象类是子类的一个描述 抽象类不能自己实例化 但可以引用子类对象 抽象类和接口都是用来实现抽象的 研究生团队 C 学习笔记V1 0 1 2 语法 访问修饰符 abstract class 类名 抽象类体 访问修饰符 abstract 返回类型 方法名 7 2 多多态态 多态性描述的是 同一个消息可以根据发送消息对象的不同采用多种不同的行为方式 多态性是智能重写 在运行时决定调用哪个方法 多态性主要靠重载和重写 隐藏来实现 7 2 1 重重写写 虚虚函函数数 重写 override 虚函数 virtual 虚函数是在普通类里定义的 可以在普通类里实现抽象方法 virtual 只能在普通类中使用 abstract 后者只能在抽象类中使用 二者都需要使用override 来重写才能实现抽象机制 二者的访问修饰符都不能是私有的 抽象类中默认的访问修饰符也是私有的 并且都不能是静态方法 7 2 2 方方法法隐隐藏藏 重写基类中现有方法的步骤 隐藏继承成员 在继承类中声明同名的新方法 在该方法前附加new 关键字 7 2 3 方方法法重重载载 方法重载有两种方法 指定不同个数的参数 指定不同类型的参数 7 3 接接口口 接口和抽象类联合起来实现比较完整的继承体系 研究生团队 C 学习笔记V1 0 1 接口是纯抽象类 它只能包含抽象方法 接口只能被继承 且该继承类必须实现该接口列出的成员 接口继承 可以通过将多个接口组合到一起来创建新的接口 7 3 1 声声明明接接口口 关键字 interface 接口内的成员不能有任何访问修饰符 默认是public 也不能是static 语法 访问修饰符 interface 接口名 接口成员 7 3 2 接接口口和和类类 接口和类之间是赤裸裸的实现关系 类继承了接口就必须将其实现 这是继承 接口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论