1、概念-关键字
老说关键字,那什么是关键字,字面理解就可以,关键的那个字。在C#中,关键字(keywords)是预先定义的保留标识符,它们具有特殊的含义,并且由编程语言本身使用。
关键字不能被用作变量名、方法名或其他用户自定义的标识符,因为这样做会导致编译错误。关键字是构成C#语言语法的基石,它们用于定义语言的结构、控制流程、数据类型和其他重要特性。
2、给关键字分类
既然知道关键字用于定义语言的结构、控制流程、数据类型,那就给他做个分类
C#的关键字可以根据其用途大致分为以下几类:
访问修饰符:定义类成员的可访问性,如 public
, private
, protected
, internal
, protected internal
。
数据类型:定义变量的类型,如 int
, float
, bool
, string
, object
。
控制流:控制程序的执行流程,如 if
, else
, switch
, case
, for
, while
, do
, break
, continue
。
异常处理:用于处理运行时错误,如 try
, catch
, finally
, throw
。
类和对象:与类和对象相关的关键字,如 class
, struct
, interface
, enum
, new
, this
, base
。
属性:用于定义和操作类的属性,如 get
, set
, value
。
泛型和集合:用于泛型和集合操作的关键字,如 where
, in
, out
, yield
。
迭代器:用于定义迭代器,如 foreach
, yield return
。
异步编程:用于异步编程的关键字,如 async
, await
。
其他:还有一些其他的关键字,如 using
, namespace
, return
, void
, true
, false
, null
等。
3、解释关键字
到底有多少关键字,其实我也不知道,可能会越来越多,掌握常用的关键字就可以,不用去纠结到底有多少个,太多了也记不住,随时用随时学就行。
通俗的解释79个关键字
访问修饰符
- public:允许从任何地方访问。
- private:只允许在当前类内部访问。
- protected:允许在当前类及其派生类中访问。
- internal:只允许在同一程序集内访问。
- protected internal:允许在同一程序集内访问,或者在派生类中访问。
类型修饰符
- static:表示类或成员是静态的,不依赖于类的实例。
- readonly:表示字段在初始化后不可修改。
- const:表示常量,编译时常量会被替换为其实际值。
- volatile:表示字段可能会被多个线程并发访问和修改。
- unsafe:允许使用不安全代码,例如指针操作。
- fixed:固定一块内存,防止垃圾回收器移动它。
- stackalloc:在栈上分配内存,用于快速访问大量数据。
控制结构
- if:如果条件为真,则执行一段代码。
- else:如果条件为假,则执行一段代码。
- switch:根据表达式的值执行不同的代码块。
- case:匹配switch表达式的值。
- default:如果没有匹配的case,则执行default代码块。
- for:执行一段代码指定次数。
- foreach:遍历集合或数组。
- while:当条件为真时,重复执行一段代码。
- do:至少执行一次代码块,然后检查条件。
- break:跳出循环或switch语句。
- continue:跳过当前迭代,继续下一次迭代。
- goto:无条件跳转到指定的标签。
- return:从方法中返回值,并结束方法执行。
- throw:抛出一个异常。
- try:尝试执行一段代码,捕获可能发生的异常。
- catch:捕获并处理异常。
- finally:无论是否发生异常,都会执行的代码块。
数据类型
- bool:布尔类型,表示true或false。
- byte:8位无符号整数。
- char:16位Unicode字符。
- decimal:128位浮点数,主要用于货币计算。
- double:64位双精度浮点数。
- float:32位单精度浮点数。
- int:32位有符号整数。
- long:64位有符号整数。
- object:所有类型的基类。
- sbyte:8位有符号整数。
- short:16位有符号整数。
- string:Unicode字符序列。
- uint:32位无符号整数。
- ulong:64位无符号整数。
- ushort:16位无符号整数。
- void:表示没有返回值。
类和对象
- class:定义一个类,封装数据和行为。
- struct:定义一个值类型,类似于类但更轻量级。
- interface:定义一组方法签名,供类实现。
- enum:定义一组命名的常量。
- new:创建一个新的对象实例。
- this:引用当前对象。
- base:引用基类。
- object:所有类型的基类。
- as:尝试将对象转换为指定类型,不成功则返回null。
- is:检查对象是否为指定类型。
- typeof:获取类型的Type对象。
- checked:启用溢出检查。
- unchecked:禁用溢出检查。
泛型和集合
- where:在泛型约束中使用,指定类型参数必须满足的条件。
- in:指定类型参数只能作为输入参数。
- out:指定类型参数只能作为输出参数。
- yield:用于迭代器方法,返回一系列值。
- var:隐式类型局部变量,编译器会推断变量的类型。
- dynamic:表示动态类型,可以在运行时确定其实际类型。
- default(T):获取类型的默认值。
- nameof:获取变量或类型的名称。
异步编程
- async:标记一个方法为异步方法。
- await:等待一个异步操作完成。
属性和索引器
其他
- get:获取属性的值
- set:设置属性的值。
- add:添加事件处理器。
- remove:移除事件处理器。
- value:属性的值。
- using:声明一个命名空间或资源使用。
- namespace:定义一个命名空间,组织代码。
- partial:定义一个部分类或方法。
- abstract:表示类或方法是抽象的,需要子类实现。
- sealed:表示类是密封的,不能被继承。
- virtual:表示方法可以被子类重写。
- override:重写基类的方法。
- params:表示方法可以接受可变数量的参数。
- explicit:定义显式转换运算符。
- implicit:定义隐式转换运算符。
- readonly struct:定义一个只读结构体。
- init:表示属性或参数只能在构造函数中初始化。
4、怎么理解记忆
理解关键字的最佳方式是通过实际编写代码和阅读代码。开始编写C#程序时,会逐渐熟悉这些关键字的用法和上下文:
- 学习基础:首先学习C#的基础知识,包括数据类型、控制结构、类和对象等。
- 编写示例:为每个关键字编写简单的示例代码,以了解其在实际中的应用。
- 阅读文档:查阅官方文档,了解每个关键字的详细说明和用法。
- 参与项目:加入开源项目或参与团队项目,通过实际工作来加深对关键字的理解。
- 解决问题:尝试解决一些编程挑战或问题,这将迫使你深入思考关键字的用法。
熟练掌握它们对于成为一名高效的C#开发者至关重要。慢慢你会发现这些关键字变得越来越自然,就像第二语言一样。???这个慢慢是哪个慢慢,这到底有多慢?