Learning Path
浏览 C# 相关教程与章节。
主流编程语言、数据结构、设计模式、正则与基础算法。
教程
69
C# 多态性 多态是同一个行为具有多个不同表现形式或形态的能力。 多态性意味着有多重形式。在面向对象编程范式中,多态性往往表现为“一个接口,多个功能”。 多态性可以是静态的或动态的。在静态多态性中,函数的响应是在编译时发生的。在动态多态性中,函数的响应是在运行时发生的。 在 C# 中,每个类型都是多态的,因为包括用户定义类型在内的所有类型都继承自 Object。 多态就是同一个接口,使用不同的实例而执行不同操作,如图所示: ..
C# 预处理器指令 预处理器指令(Preprocessor Directives)指导编译器在实际编译开始之前对信息进行预处理。 通过这些指令,可以控制编译器如何编译文件或编译哪些部分。常见的预处理器指令包括条件编译、宏定义等。 所有的预处理器指令都是以 # 开始,且在一行上,只有空白字符可以出现在预处理器指令之前。预处理器指令不是语句,所以它们不以分号 ; 结束。 C# 编译器没有一个单独的预处理器,但是,指令被处理时就像是有一个..
C# 程序结构 在我们学习 C# 编程语言的基础构件块之前,让我们先看一下 C# 的最小的程序结构,以便作为接下来章节的参考。 C# Hello World 实例 一个 C# 程序主要包括以下部分: 命名空间声明(Namespace declaration) 一个 class Class 方法 Class 属性 一个 Main 方法 语句(Statements)& 表达式(Expressions) 注释 C# 文件的后..
C# 属性(Property) C# 中的属性(Property)是类和结构体中用于封装数据的成员。它们提供了一种方式来定义类成员的访问和设置规则,通常用于隐藏字段(Fields)的内部实现细节,同时提供控制数据访问的机制。属性可以看作是对字段的包装器,通常由 get 和 set 访问器组成。 属性(Property)不会确定存储位置。相反,它们具有可读写或计算它们值的 访问器(accessors)。 例如,有一个名为 Stude..
C# 队列(Queue) C# 集合 在 C# 中,Queue 是一个先进先出(FIFO, First In First Out)数据结构。 Queue 属于 System.Collections 或 System.Collections.Generic 命名空间,分别提供非泛型和泛型版本的实现。Queue 适用于需要按照入队顺序处理数据的场景。 队列(Queue)代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时..
C# 语言测验 知识挑战 通过这些互动问题测试学习情况 ..
C# 反射(Reflection) 反射指程序可以访问、检测和修改它本身状态或行为的一种能力。 程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。 您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。 优缺点 优点: 1、反射提高了程序的灵活性和扩展性。 2、降低耦合性,提高自适应能力。 3、它允许程序创建和控制任何..
C# 正则表达式 正则表达式 是一种用来描述、匹配文本模式的搜索公式。简单来说,你可以把它理解成一套特殊的通配符语言,用来精确地找到、验证或替换字符串中的内容。 例如,想判断用户输入的是不是一个合法的邮箱地址、手机号,或者想从一段文本里提取所有日期——这些都是正则表达式的典型应用场景。 .NET 框架内置了功能完善的正则表达式引擎,通过 System.Text.RegularExpressions 命名空间提供支持。 一个正则表达式模..
C# 排序列表(SortedList) C# 集合 在 C# 中,排序列表(SortedList) 是一种按键自动排序的集合,它通过键值对存储数据,并在添加或更新时根据键的顺序(升序)自动排序。 SortedList 类代表了一系列按照键来排序的 key => value 对,这些键值对可以通过键和索引来访问。 排序列表是数组和哈希表的组合。它包含一个可使用键或索引访问各项的列表。如果您使用索引访问各项,则它是一个..
C# 堆栈(Stack) C# 集合 在 C# 中,堆栈(Stack) 是一种后进先出(LIFO, Last In First Out)的数据结构。 堆栈(Stack)适用于存储和按顺序处理数据,其中最新添加的元素会最先被移除。 堆栈(Stack)代表了一个后进先出的对象集合。当您需要对各项进行后进先出的访问时,则使用堆栈。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。 Stack 提供了两种实现方式..
C# 字符串(String) 在 C# 中,您可以使用字符数组来表示字符串,但是,更常见的做法是使用 string 关键字来声明一个字符串变量。string 关键字是 System.String 类的别名。 创建 String 对象 您可以使用以下方法之一来创建 string 对象: 通过给 String 变量指定一个字符串 通过使用 String 类构造函数 通过使用字符串串联运算符( + ) 通过检索属性或调用一个返回字符..
C# 结构体(Struct) 在 C# 中,结构体(struct)是一种值类型(value type),用于组织和存储相关数据。 在 C# 中,结构体是值类型数据结构,这样使得一个单一变量可以存储各种数据类型的相关数据。 struct 关键字用于创建结构体。 结构体是用来代表一个记录,假设您想跟踪图书馆中书的动态,您可能想跟踪每本书的以下属性: Title Author Subject Book ID 定义结构体 为了定义一..
C# switch 语句 C# 判断 一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。 语法 C# 中 switch 语句的语法: switch(expression){ case constant-expression : statement(s); break; case co..
C# 文本文件的读写 C# 文件的输入与输出 StreamReader 和 StreamWriter 类用于文本文件的数据读写。这些类从抽象基类 Stream 继承,Stream 支持文件流的字节读写。 StreamReader 类 StreamReader 类继承自抽象基类 TextReader,表示阅读器读取一系列字符。 下表列出了 StreamReader 类中一些常用的方法: 序号方法 & 描述 1p..
C# 教程 C# 是一个简单的、现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的。 本教程将告诉您基础的 C# 编程,同时将向您讲解 C# 编程语言相关的各种先进理念。 现在开始学习 C#! C# 在线工具 谁适合阅读本教程? 本教程有助于初学者理解基础的 C# 编程。在学习完本教程后,您将到达一个中级的 C# 编程水平。 阅读本教程前,您需要了解的知识: C# 编程是基于 C 和 C++ 编程语言的..
C# 类型转换 在 C# 中,类型转换是将一个数据类型的值转换为另一个数据类型的过程。 C# 中的类型转换可以分为两种:隐式类型转换和显式类型转换(也称为强制类型转换)。 隐式类型转换 隐式转换是不需要编写代码来指定的转换,编译器会自动进行。 隐式转换是指将一个较小范围的数据类型转换为较大范围的数据类型时,编译器会自动完成类型转换,这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。 例如,从 int 到 long,从..
C# 不安全代码 当一个代码块使用 unsafe 修饰符标记时,C# 允许在函数中使用指针变量。不安全代码或非托管代码是指使用了指针变量的代码块。 指针变量 指针 是值为另一个变量的地址的变量,即,内存位置的直接地址。就像其他变量或常量,您必须在使用指针存储其他变量地址之前声明指针。 指针变量声明的一般形式为: type* var-name; 下面是指针类型声明的实例: 实例 描述 int* p p 是指向整数的..
C# 变量作用域 在 C# 中,变量的作用域定义了变量的可见性和生命周期。 变量的作用域通常由花括号 {} 定义的代码块来确定。 以下是关于C#变量作用域的一些基本规则: 局部变量 在方法、循环、条件语句等代码块内声明的变量是局部变量,它们只在声明它们的代码块中可见。 实例 [mycode4 type='csharp'] void MyMethod() { int localVar = 10; // 局部..
C# 变量 一个变量只不过是一个供程序操作的存储区的名字。 在 C# 中,变量是用于存储和表示数据的标识符,在声明变量时,您需要指定变量的类型,并且可以选择性地为其分配一个初始值。 在 C# 中,每个变量都有一个特定的类型,类型决定了变量的内存大小和布局,范围内的值可以存储在内存中,可以对变量进行一系列操作。 我们已经讨论了各种数据类型。C# 中提供的基本的值类型大致可以分为以下几类: 类型举例 整数类型sbyte、byte、sh..
C# while 循环 C# 循环 只要给定的条件为真,C# 中的 while 循环语句会重复执行一个目标语句。 语法 C# 中 while 循环的语法: while(condition) { statement(s); } 在这里,statement(s) 可以是一个单独的语句,也可以是几个语句组成的代码块。condition 可以是任意的表达式,当为任意非零值时都为真。当条件为真时执行循环。 当条件为假时,程序..
C# Windows 文件系统的操作 C# 文件的输入与输出 C# 允许您使用各种目录和文件相关的类来操作目录和文件,比如 DirectoryInfo 类和 FileInfo 类。 DirectoryInfo 类 DirectoryInfo 类派生自 FileSystemInfo 类。它提供了各种用于创建、移动、浏览目录和子目录的方法。该类不能被继承。 下表列出了 DirectoryInfo 类中一些常用的属性: 序号属性 &..