随笔分类 - 编程语言 / C#
摘要:迭代器概念: 迭代器又称光标,是程序设计的软件设计模式。迭代器提供一个方法顺序访问一个聚合对象的各个元素,而不暴漏内部的标识。 在表象上看,在外部用foreach遍历对象而不需要了解其结构的,都是实现迭代器的。 标准迭代器的实现方法 关键接口:IEnumerator,IEnumerable。 命名空
阅读全文
摘要:C#编译宏 C#的预处理机制 预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。 预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了
阅读全文
摘要:值类型: 直接包含数据的类型。 在赋值时,将数据的副本传递给新变量。 int a = 10; int b = a; // 复制值 b = 20; // 修改 b 不影响 a Console.WriteLine(a); // 输出: 10 引用类型: 存储对象的引用(地址),而不是对象本身。 在赋值时
阅读全文
摘要:基础概念 索引器,将一个对象变的可以像数组一样使用下标访问,索引器的创建类似属性,都需要设置Get和Set方法。 创建格式: type this[int index] { // get 访问器 get { // 返回 index 指定的值 } // set 访问器 set { // 设置 index
阅读全文
摘要:特性 公共语言运行时使你能够添加类似于关键字的描述性声明(称为特性),特性是元数据的一种应用,也是作为描述数据的数据,以便批注编程元素(如类型、字段、方法和属性)。编译运行时的代码时,它将被转换为 Microsoft 中间语言 (MSIL),并和编译器生成的元数据一起放置在可移植可执行 (PE) 文
阅读全文
摘要:基础概念 委托(Delegate)特别用于实现事件和回调方法。所有的委托(Delegate)都派生自 System.Delegate 类。 C# 事件(Event)是一种成员,用于将特定的事件通知发送给订阅者。事件通常用于实现观察者模式,它允许一个对象将状态的变化通知其他对象,而不需要知道这些对象的
阅读全文
摘要:集合 用于存储和管理相关对象的组。一些集合类型(例如 System.Array、System.Span 和 System.Memory)可使用 C# 语言识别。类似 System.Collections.Generic.IEnumerable 的接口可使用枚举集合元素的语言来识别。 集合提供灵活的方
阅读全文
摘要:基本概念 System.IO 命名空间有各种不同的类,用于执行各种文件操作,如创建和删除文件、读取或写入文件,关闭文件等。以下是一些常用的类及其用途: File类 提供静态方法来读写文件,如复制、删除、移动文件等。 File.Exists():判断文件是否存在 if (File.Exists("D:
阅读全文
摘要:基本概念 异常处理是一种用于检测和响应运行时错误的机制。当程序遇到无法继续执行的情况时,它可以抛出一个异常。C# 异常处理时建立在四个关键词之上的:try、catch、finally 和 throw。 异常处理 try:一个 try 块标识了一个将被激活的特定的异常的代码块。后跟一个或多个 catc
阅读全文
摘要:正则表达式 正则表达式 是一种匹配输入文本的模式。.Net 框架提供了允许这种匹配的正则表达式引擎。模式由一个或多个字符、运算符和结构组成。 作用: 查询,从字符串中获取我们想要的部分 匹配,判定字符串是否符合规则 如判断用户输入的密码是否正确,邮箱格式是否合法等。 字符转义 正则表达式中的反斜杠字
阅读全文
摘要:基本概念 多态是同一个行为具有多个不同表现形式或形态的能力。 多态性意味着有多重形式。在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"。 多态性可以是静态的或动态的。在静态多态性中,函数的响应是在编译时发生的。在动态多态性中,函数的响应是在运行时发生的 在 C# 中,每个类型都是多态的,
阅读全文
摘要:基本概念 字符串是一种用于表示文本序列的数据类型。字符串是由字符组成的不可变对象,这意味着一旦创建了一个字符串,你就不能改变它的内容。 常用字符串方法 Length:获取字符串长度 string str = "Hello"; Console.WriteLine(str.Length); // 输出:
阅读全文
摘要:基础概念 运算符重载使用了一个名为operator的关键字, 重载运算符后,在使用时会调用重载后的方法,使用这种方法可以实现对象之间自定义+-操作。 可重载运算符: 一元运算符:+, -, !, ~, ++, -- 算术运算符:+, -, *, /, % 比较运算符:==, !=, <, >, <=
阅读全文
摘要:C#单问号(?) 基础概念 ? 单问号用于对 int、double、bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 Nullable 类型的。 Nullable是C#提供的一个特殊的数据类型,可空类型可以表示其基础值类型正常范围内的值,再加上一个 nul
阅读全文
摘要:基础概念 循环是用于重复执行一段代码直到满足某个条件为止的一种结构。常用的循环有:for循环、foreach循环、while循环、do...while循环 for循环 for循环通常用于已知迭代次数的情况,它由三个部分组成:初始化、条件判断和更新表达式 for (int i = 0; i < 5;
阅读全文
摘要:基础概念 作用域定义了变量、方法和类型的可见性和生命周期。它确定了在程序的哪些部分可以访问特定的标识符。访问修饰符可决定其作用域。 public:类型和类型成员的访问修饰符。是允许的最高访问级别。对访问公共成员没有限制。 private:是允许的最低访问级别。私有成员只有在声明它们的类和结构体中才是
阅读全文
摘要:基础概念 在 C# 中,类型转换是将一个数据类型的值转换为另一个数据类型的过程。 C# 中的类型转换可以分为两种:隐式类型转换和显式类型转换(也称为强制类型转换)。 显式类型转换 基础概念 显式类型转换,即强制类型转换,需要程序员在代码中明确指定。 显式转换是指将一个较大范围的数据类型转换为较小范围
阅读全文
摘要:基础概念 在 C# 中,变量分为以下几种类型: 值类型(Value types) 引用类型(Reference types) 指针类型(Pointer types) 值类型(Value types) 值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。 值类型直接
阅读全文