📄️ 委托(Delegate)
如果我们想将函数作为参数传递怎么办?C#如何处理回调函数或事件处理程序?答案是-委托(delegate)。委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。
📄️ 事件(Event)
事件是对象发送的通知,用于表示操作的发生。.NET中的事件遵循观察者设计模式。
📄️ 匿名方法
顾名思义,匿名方法是没有名称的方法。可以使用委托(delegate)关键字定义C#中的匿名方法,并且可以将其分配给委托(delegate)类型的变量。
📄️ 可空类型(Nullable)
众所周知,不能为值类型分配空值。例如,int i = null 将抛出编译时错误。
📄️ 扩展方法
顾名思义,扩展方法是附加方法。扩展方法使您可以注入其他方法,而无需修改,派生或重新编译原始类,结构或接口。可以将扩展方法添加到您自己的自定义类,.NET Framework类或第三方类或接口中。
📄️ 流(Stream)
C#包括以下标准IO(输入/输出)类,可从不同的源(例如文件,内存,网络,隔离存储等)进行读取/写入。
📄️ 文件和目录
C#提供了以下用于文件系统的类。它们可用于访问目录,访问文件,打开文件以进行读取或写入,创建新文件或将现有文件从一个位置移动到另一位置等。
📄️ 对象初始化器
C#3.0(.NET 3.5)引入了对象初始化器语法,这是一种初始化类或集合对象的新方法。对象初始化程序允许您在创建对象时将值分配给字段或属性,而无需调用构造函数。
📄️ FileInfo
在这里,您将学习如何使用FileInfo类对物理文件执行读/写操作。
📄️ 命名空间(Namespace)
命名空间的设计目的是提供一种让一组名称与其他名称分隔开的方式。在一个命名空间中声明的类的名称与另一个命名空间中声明的相同的类的名称不冲突。
📄️ StringBuilder
在C#中,字符串类型是不可变的。这意味着字符串一旦创建就无法更改。
📄️ 分部类和方法(Partial)
在C#中,可以使用 partial 关键字拆分多个.cs文件中的类、结构、方法或接口的实现。编译程序时,编译器将合并来自多个.cs文件的所有实现。
📄️ 预处理器指令
预处理器指令指导编译器在实际编译开始之前对信息进行预处理。
📄️ 特性(Attribute)
特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。
📄️ 反射(Reflection)
反射指程序可以访问、检测和修改它本身状态或行为的一种能力。
📄️ 属性(Property)
属性(Property) 是类(class)、结构(structure)和接口(interface)的命名(named)成员。类或结构中的成员变量或方法称为 域(Field)。属性(Property)是域(Field)的扩展,且可使用相同的语法来访问。它们使用 访问器(accessors) 让私有域的值可被读写或操作。
📄️ 多线程
线程 被定义为程序的执行路径。每个线程都定义了一个独特的控制流。如果您的应用程序涉及到复杂的和耗时的操作,那么设置不同的线程执行路径往往是有益的,每个线程执行特定的工作。