Learning Path
浏览 C# 相关教程与章节。
主流编程语言、数据结构、设计模式、正则与基础算法。
教程
69
C# 教程 C# 是一个简单的、现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的。 本教程将告诉您基础的 C# 编程,同时将向您讲解 C# 编程语言相关的各种先进理念。 现在开始学习 C#! C# 在线工具 谁适合阅读本教程? 本教程有助于初学者理解基础的 C# 编程。在学习完本教程后,您将到达一个中级的 C# 编程水平。 阅读本教程前,您需要了解的知识: C# 编程是基于 C 和 C++ 编程语言的..
C# 匿名方法 在 C# 中,匿名函数是一种没有名字的方法,可以在代码中定义和使用。 我们已经提到过,委托是用于引用与其具有相同标签的方法。换句话说,您可以使用委托对象调用可由委托引用的方法。 匿名方法(Anonymous methods) 提供了一种传递代码块作为委托参数的技术。 在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的。 Lambda 表达式 Lambda 表达式是一个简洁的语法,用于创..
C# Array 类 C# 数组 Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义。Array 类提供了各种用于数组的属性和方法。 C# 中的 Array 类是所有数组的基类,位于 System 命名空间下。数组是一种用于存储固定大小、同一类型元素的集合。理解 Array 类的特性和方法对于高效编写 C# 程序非常重要。以下是对 C# Array 类的详细介绍,包括其特性、常用方法、属性和使用示例。特..
C# 数组(Array) 数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。 声明数组变量并不是声明 number0、number1、...、number99 一个个单独的变量,而是声明一个就像 numbers 这样的变量,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来表示一个个单独的变量。数组中某个指定的元素是通过索引来访问的。..
C# 动态数组(ArrayList) C# 集合 ArrayList 是 C# 中提供的一种动态数组类,位于命名空间 System.Collections 中。 动态数组(ArrayList)与普通数组不同,它的大小可以动态调整,无需预先定义固定长度。 动态数组(ArrayList)代表了可被单独索引的对象的有序集合,它也允许在列表中进行动态内存分配、增加、搜索、排序各项。ArrayList 类适用于需要频繁调整大小的数组操..
C# 特性(Attribute) 特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。 特性(Attribute)用于添加元数据,如编译器指令和注释、描述、方法、类等其他信息。.Net 框架提供了两种类型的特性:预定义特性和自定义特性。 规定特性(Att..
C# 基本语法 C# 是一种面向对象的编程语言。在面向对象的程序设计方法中,程序由各种相互交互的对象组成。相同种类的对象通常具有相同的类型,或者说,是在相同的 class 中。 例如,以 Rectangle(矩形)对象为例。它具有 length 和 width 属性。根据设计,它可能需要接受这些属性值、计算面积和显示细节。 让我们来看看一个 Rectangle(矩形)类的实现,并借此讨论 C# 的基本语法: 实例 [mycode..
C# 二进制文件的读写 C# 文件的输入与输出 BinaryReader 和 BinaryWriter 类用于二进制文件的读写。 BinaryReader 类 BinaryReader 类用于从文件读取二进制数据。一个 BinaryReader 对象通过向它的构造函数传递 FileStream 对象而被创建。 下表列出了 BinaryReader 类中一些常用的方法: 序号方法 & 描述 1public ov..
C# 点阵列(BitArray) C# 集合 BitArray 是 C# 中用于表示一组位(bit)值的集合。 BitArray 属于 System.Collections 命名空间,主要用于处理二进制数据或进行位操作,相比使用布尔数组(bool[]),BitArray 更加高效,因为它以紧凑的方式存储每个位。 BitArray 类管理一个紧凑型的位值数组,它使用布尔值来表示,其中 true 表示位是开启的(1),false 表..
C# break 语句 C# 循环 C# 中 break 语句有以下两种用法: 当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。 它可用于终止 switch 语句中的一个 case。 如果您使用的是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。 语法 C# 中 break 语句的语法: break; ..
C# 类(Class) 当你定义一个类时,你定义了一个数据类型的蓝图。这实际上并没有定义任何的数据,但它定义了类的名称意味着什么,也就是说,类的对象由什么组成及在这个对象上可执行什么操作。对象是类的实例。构成类的方法和变量称为类的成员。 类的定义 类的定义是以关键字 class 开始,后跟类的名称。类的主体,包含在一对花括号内。下面是类定义的一般形式: [mycode4 type='csharp'] cla..
C# 集合(Collection) 在 C# 中,集合(Collection)类是专门用于数据存储和检索的一类类。集合让我们能够轻松地存放、管理和操作一组数据,比如: 通过索引访问列表中的项; 通过键访问字典中的值; 动态地添加或删除元素等。 集合类提供了对多种常见数据结构的支持,例如: 栈(Stack) —— 后进先出(LIFO)结构; 队列(Queue) —— 先进先出(FIFO)结..
C# 常量 常量是固定值,程序执行期间不会改变。常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量或者字符串常量,还有枚举常量。 常量可以被当作常规的变量,只是它们的值在定义后不能被修改。 整数常量 整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,没有前缀则表示十进制。 整数常量也可以有后缀,可以是 U 和 L 的组合,其中,U 和 L 分别表示 unsigne..
C# continue 语句 C# 循环 C# 中的 continue 语句有点像 break 语句。但它不是强迫终止,continue 会跳过当前循环中的代码,强迫开始下一次循环。 对于 for 循环,continue 语句会导致执行条件测试和循环增量部分。对于 while 和 do...while 循环,continue 语句会导致程序控制回到条件测试上。 语法 C# 中 continue 语句的语法: contin..
C# 数据类型 在 C# 中,变量分为以下几种类型: 值类型(Value types) 引用类型(Reference types) 指针类型(Pointer types) 值类型(Value types) 值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。 值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。当您声明一个 int 类型时,系统分配内存来..
C# 判断 判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。 下面是大多数编程语言中典型的判断结构的一般形式: 判断语句 C# 提供了以下类型的判断语句。点击链接查看每个语句的细节。 语句描述 if 语句一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。 if...else 语句一个 if 语句 后可跟一个可选的 else 语句,else 语..
C# 委托(Delegate) 在 C# 中,委托(Delegate) 是一种类型安全的函数指针,它允许将方法作为参数传递给其他方法。 C# 中的委托(Delegate)类似于 C 或 C++ 中函数的指针。委托(Delegate) 是存有对某个方法的引用的一种引用类型变量,引用可在运行时被改变。 委托在 C# 中非常常见,用于事件处理、回调函数、LINQ 等操作。 所有的委托(Delegate)都派生自 System.Deleg..
C# do...while 循环 C# 循环 不像 for 和 while 循环,它们是在循环头部测试循环条件。do...while 循环是在循环的尾部检查它的条件。 do...while 循环与 while 循环类似,但是 do...while 循环会确保至少执行一次循环。 语法 C# 中 do...while 循环的语法: do { statement(s); }while( condition ); 请注意..
C# 封装 封装 被定义为“把一个或多个项目封闭在一个物理的或者逻辑的包中”。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。 抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象。 C# 封装根据具体的需要,设置使用者的访问权限,并通过 访问修饰符 来实现。一个 访问修饰符 定义了一个类成员的范围和可见性。C# 支持的访问修饰符如下所示: public:所有对象都可以访问..
C# 枚举(Enum) 枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。 C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。 声明 enum 变量 声明枚举的一般语法: enum { enumeration list }; 其中, enum_name 指定枚举的类型名称。 enumeration list 是一个用逗号分隔的标识符列表。 枚举列表中的每个符号代表一个整数值..
C# 开发环境 工欲善其事,必先利其器,在正式开始写 C# 代码之前,我们需要先在电脑上搭建好开发环境。 C# 开发环境搭建,整个过程并不复杂——只需要安装两样东西:一个运行平台(.NET SDK)和一个代码编辑器,你就可以开始你的 C# 编程之旅了。 第一步:了解 .NET 与 C# 的关系 在安装工具之前,我们先搞清楚一个常见的疑问:C# 和 .NET 是同一个东西吗? 不是。它们的关系可以这样理解: C# 是你写代码用的..
C# 事件(Event) C# 事件(Event)是一种成员,用于将特定的事件通知发送给订阅者。事件通常用于实现观察者模式,它允许一个对象将状态的变化通知其他对象,而不需要知道这些对象的细节。 事件(Event) 基本上说是一个用户操作,如按键、点击、鼠标移动等等,或者是一些提示信息,如系统生成的通知。应用程序需要在事件发生时响应事件。例如,中断。 C# 中使用事件机制实现线程间的通信。 关键点: 声明委托:定义事件将使用的委托类..
C# 异常处理 异常是在程序执行期间出现的问题。C# 中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零。 异常提供了一种把程序控制权从某个部分转移到另一个部分的方式。C# 异常处理时建立在四个关键词之上的:try、catch、finally 和 throw。 try:一个 try 块标识了一个将被激活的特定的异常的代码块。后跟一个或多个 catch 块。 catch:程序通过异常处理程序捕获异常。catch 关键字表..
C# 文件的输入与输出 一个 文件 是一个存储在磁盘中带有指定名称和目录路径的数据集合。当打开文件进行读写时,它变成一个 流。 从根本上说,流是通过通信路径传递的字节序列。有两个主要的流:输入流 和 输出流。输入流用于从文件读取数据(读操作),输出流用于向文件写入数据(写操作)。 C# I/O 类 System.IO 命名空间有各种不同的类,用于执行各种文件操作,如创建和删除文件、读取或写入文件,关闭文件等。 下表列出了一些 S..