### C#语言规范知识点概述 #### 一、简介与核心概念 **1.1 开始** - **背景**: C#是一种面向对象的编程语言,由微软公司开发,并于2000年发布。 - **目标**: 设计为简单、现代且类型安全的语言,适用于构建各种类型的应用程序。 **1.2 类型** - **预定义类型**: 包括数值类型(如`int`, `double`)、布尔类型(`bool`)等。 - **转换**: 支持隐式转换和显式转换,例如将较小的数据类型转换为较大的数据类型时可以使用隐式转换。 - **数组类型**: 定义和操作一维或多维数组的方法。 - **类型系统统一化**: 在C#中,所有的类型都从`object`类派生,这意味着所有类型都可以被当作`object`来处理。 **1.3 变量和参数** - **变量**: 包括局部变量、字段、参数等。 - **参数**: 支持值参数、引用参数和输出参数。 **1.4 自动内存管理** - **垃圾回收机制**: C#通过.NET运行时提供的自动垃圾回收机制管理内存,无需手动释放不再使用的对象。 **1.5 表达式** - **算术表达式**: 如加法、减法等。 - **逻辑表达式**: 如逻辑与、逻辑或等。 **1.6 语句** - **流程控制语句**: 包括`if`语句、`for`循环、`while`循环等。 - **异常处理**: 使用`try-catch`语句处理异常情况。 **1.7 类** - **常数**: 用于定义不可更改的值。 - **字段**: 类的成员变量。 - **方法**: 类的行为。 - **属性**: 提供对私有字段的访问方式。 - **事件**: 用于通知其他对象发生的特定动作。 - **运算符**: 定义了如何使用运算符操作类的实例。 - **索引器**: 允许类的实例像数组一样使用索引进行访问。 - **构造函数**: 初始化类的新实例。 - **析构函数**: 清理非托管资源。 - **静态构造函数**: 用于初始化类的静态成员。 - **继承**: 支持单继承,允许子类继承父类的特性。 **1.8 结构** - **结构体**: 是值类型的一种,类似于类但不支持继承。 **1.9 接口** - **接口**: 定义了一组抽象方法,用于实现多态。 **1.10 委托** - **委托**: 是指向方法的引用,可以作为方法的参数传递。 **1.11 枚举** - **枚举类型**: 定义一组命名的常量集合。 **1.12 命名空间和程序集** - **命名空间**: 用于组织类和其他类型,避免命名冲突。 - **程序集**: 是一个或多个编译单元的集合,包含代码和资源。 **1.13 版本控制** - **版本管理**: 通过程序集版本号管理程序集的不同版本。 **1.14 属性** - **属性**: 提供一种更简洁的方式访问类的字段。 #### 二、词法结构 **2.1 程序** - **程序结构**: C#程序由多个命名空间组成,每个命名空间又包含多个类或其他类型。 **2.2 语法** - **文法表示法**: 描述C#语法的具体规则。 - **词法文法**: 规定了语言的基本单位,如关键字、标识符等。 - **句法文法**: 描述了这些基本单位如何组合成更大的结构。 **2.3 词法分析** - **行结束符**: 指明行结束的符号。 - **空白**: 空格、制表符等。 - **注释**: 单行注释(`//`)和多行注释(`/* */`)。 **2.4 标记** - **Unicode字符转义序列**: 用于表示特殊字符。 - **标识符**: 用于命名类型、变量等。 - **关键字**: 预定义的词,如`class`、`public`等。 - **文本**: 包括布尔值、整数、实数、字符和字符串。 - **运算符和标点符号**: 定义了操作符和分隔符。 **2.5 预处理指令** - **条件编译符号**: 用于控制代码是否参与编译。 - **预处理表达式**: 定义了预处理条件。 - **声明指令**: 如`#region`和`#endregion`。 - **条件编译指令**: 控制代码的条件编译。 - **诊断指令**: 如`#warning`和`#error`用于在编译时显示警告或错误消息。 - **区域指令**: 用于指定代码区域。 - **行指令**: 修改源代码的位置信息。 #### 三、基本概念 **3.1 应用程序启动** - **入口点**: 每个C#程序都必须有一个主方法(`Main`)作为入口点。 **3.2 应用程序终止** - **正常终止**: 通过`Main`方法返回。 - **异常终止**: 当未处理的异常发生时。 **3.3 声明** - **变量声明**: 定义变量及其类型。 - **方法声明**: 定义方法的签名。 - **类型声明**: 定义新的类型。 **3.4 成员** - **命名空间成员**: 定义在命名空间级别的类型。 - **结构成员**: 结构体的成员变量和方法。 - **枚举成员**: 枚举类型的值。 - **类成员**: 类的成员变量和方法。 - **接口成员**: 接口中声明的方法。 - **数组成员**: 数组中的元素。 - **委托成员**: 委托类型的成员。 **3.5 成员访问** - **已声明可访问性**: 定义成员可以被哪些代码访问。 - **可访问域**: 成员的实际可访问范围。 - **实例成员的受保护访问**: 限制对实例成员的访问。 - **可访问性约束**: 限制类型或成员的可访问性。 **3.6 签名和重载** - **方法签名**: 包括方法名和参数列表。 - **方法重载**: 允许多个方法具有相同的名称但不同的参数列表。 **3.7 范围** - **名称隐藏**: 在不同的作用域内,可以有相同名称的实体。 **3.8 命名空间和类型名称** - **完全限定名**: 包含完整路径的类型名称。 **3.9 自动内存管理** - **垃圾回收**: .NET运行时自动管理对象的生命周期,包括创建和销毁。 **3.10 执行顺序** - **控制流**: 确定程序的执行路径和顺序。 #### 四、类型 **4.1 值类型** - **`System.ValueType`类型**: 所有值类型的基类。 - **默认构造函数**: 每个值类型都有一个默认构造函数。 - **结构类型**: 类似的值类型。 - **简单类型**: 如`int`、`float`等。 - **整型**: 包括`byte`、`short`、`int`等。 - **浮点型**: 包括`float`、`double`等。 - **`decimal`类型**: 高精度的十进制数类型。 - **`bool`类型**: 布尔类型。 - **枚举类型**: 定义一组命名的整数常量。 **4.2 引用类型** - **类类型**: 包括用户自定义的类。 - **对象类型**: 所有引用类型的基类。 - **`string`类型**: 字符串类型。 - **接口类型**: 定义了类型应该实现的方法。 - **数组类型**: 包括一维数组和多维数组。 - **委托类型**: 定义了方法签名。 **4.3 装箱和取消装箱** - **装箱转换**: 将值类型转换为引用类型。 - **取消装箱转换**: 将引用类型转换回值类型。 #### 五、变量 **5.1 变量类别** - **静态变量**: 与类关联,而不是与类的实例关联。 - **实例变量**: 与类的实例关联。 - **数组元素**: 数组中的每个元素都是变量。 - **值参数**: 方法调用时传递的参数。 - **引用参数**: 方法调用时传递的引用。 - **输出参数**: 方法调用后返回的参数。 - **局部变量**: 定义在方法内的变量。 **5.2 默认值** - **值类型**: 默认值为零或空。 - **引用类型**: 默认值为`null`。 **5.3 明确赋值** - **初始已赋值变量**: 在声明时已赋予初始值的变量。 - **初始未赋值变量**: 在声明时未赋予初始值的变量。 - **确定明确赋值的细则**: 规定了何时需要为变量提供初始值。 以上是根据给定文档的,,,【部分内容】整理出来的关于C#语言规范的知识点概述。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Android-Porting台湾 移植与研究实行.zip
- java宿舍管理系统源码带本地搭建教程数据库 MySQL源码类型 WebForm
- 【java毕业设计】鲜牛奶订购系统的设计与实现源码(springboot+vue+mysql+说明文档+LW).zip
- 计算机科学中的基于朴素贝叶斯算法的垃圾邮件分类系统
- 考研加油 app,助力冲刺政治 / 408
- 【java毕业设计】个人云盘管理系统的设计与实现源码(springboot+vue+mysql+说明文档+LW).zip
- 毕业设计高分项目-didizuoye小程序源码(优秀毕业设计源码 + 运行截图).zip
- 【java毕业设计】毕业就业信息管理系统的设计与实现源码(springboot+vue+mysql+说明文档+LW).zip
- 【java毕业设计】电影院购票系统源码(springboot+vue+mysql+说明文档+LW).zip
- dabai小程序源码(优秀毕业设计源码 + 运行截图).zip