枚举是一组命名整数常量的集合。使用 enum 关键字声明枚举类型。C# 枚举是值数据类型,包含自身值,不能继承也不能被继承。 声明枚举变量 通用语法: enum <enum_name> { enumeration list }; enum_name:枚举类型名称 enumeration list:逗号分隔的标识符列表 枚举列表中每个符号代表整数值,比前一个符号大 1。默认首个符号值为 0。 示例 enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat }; // Sun=0, Mon=1, Tue=2, Wed=3, Thu=4, Fr
C# 中结构体是值类型数据类型,用struct关键字创建。结构体让单个变量持有多种数据类型的相关数据,常用于表示记录。 定义结构体 使用 struct 语句定义新数据类型,包含多个成员: struct Books { public string title; public string author; public string subject; public int book_id; } 使用示例 using System; struct Books { public string title; public string author;
C# 中可将字符串视为字符数组,但更常用 string 关键字声明字符串变量。string 是 System.String 类的别名。 创建字符串对象 五种常见创建方式: 字符串字面量赋值 String 类构造函数 字符串连接运算符 + 获取返回字符串的属性或调用方法 格式化方法转换值或对象为字符串表示 综合示例 using System; namespace StringApplication { class Program { static void Main(string[] args) { // 字面量与连接
数组存储固定大小的同类型元素顺序集合。可视为存储在连续内存位置的同类型变量集合。通过索引访问特定元素。 所有数组由连续内存位置组成。最低地址对应第一个元素,最高地址对应最后一个元素。 声明数组 datatype[] arrayName; datatype:指定数组元素类型 []:指定数组秩(维度) arrayName:数组名称 示例:double[] balance; 初始化数组 声明不分配内存,需用 new 关键字创建实例: double[] balance = new double[10]; 赋值方式 按索引赋值:balance[0] = 4500.0; 声明时初始化:d
C# 提供特殊的可空类型,允许在正常取值范围外额外赋值 null。 例如:Nullable<Int32> 可存储 -2,147,483,648 到 2,147,483,647 之间的任意值或 null;Nullable<bool> 可存储 true、false 或 null。 声明语法 <data_type>? <variable_name> = null; 使用示例 using System; namespace CalculatorApplication { class NullablesAtShow { sta
方法是一组共同执行任务的语句。每个 C# 程序至少包含一个带有 Main 方法的类。 使用方法需两步: 定义方法 调用方法 定义方法 定义方法时声明其结构要素。语法: <Access Specifier> <Return Type> <Method Name>(Parameter List) { Method Body } 方法要素 访问修饰符:决定从其他类访问变量或方法的可见性。 返回类型:方法可能返回值,返回类型是返回值的数据类型。无返回值则为 void。 方法名:唯一标识符,区分大小写,不能与类中其他标识符同名。 参数列表:括号内的
封装被定义为将一个或多个项封装在物理或逻辑包内的过程。在面向对象编程方法论中,封装隐藏实现细节。 抽象和封装是面向对象编程的相关特性。抽象让相关信息可见,封装则让程序员能够实现所需的抽象级别。 封装通过访问修饰符实现。访问修饰符定义类成员的作用域和可见性。C# 支持以下访问修饰符: Public(公共) Private(私有) Protected(受保护) Internal(内部) Protected Internal(受保护的内部) Public 访问修饰符 Public 允许类将成员变量和成员函数暴露给其他函数和对象。任何公共成员均可从类外部访问。 示例 using System;
当需要多次执行同一代码块时使用循环。语句通常按顺序执行,循环语句允许执行语句或语句组多次。 大多数编程语言中循环语句的一般形式: C# 循环类型 序号循环类型及说明 1while 循环:在条件为真时重复执行语句或语句组。循环体执行前先测试条件。 2for 循环:多次执行语句序列,简化循环变量管理代码。 3do...while 循环:类似 while,但条件测试在循环体末尾,保证至少执行一次。 4嵌套循环:可在 while、for 或 do...while 内部使用一个或多个循环。 循环控制语句 循环控制语句改变正常执行序列。离开作用域时,该作用域内创建的所有自动对象均被销毁
决策结构要求程序员指定一个或多个条件供程序评估测试,并指定条件为真时执行的语句,可选地指定条件为假时执行的语句。 大多数编程语言中典型决策结构的一般形式如下: C# 决策语句类型 序号语句及说明 1if 语句:包含一个布尔表达式,后跟一条或多条语句。 2if...else 语句:if 后可跟可选的 else 语句,布尔表达式为假时执行。 3嵌套 if 语句:可在一个 if 或 else if 内部使用另一个 if 或 else if。 4switch 语句:允许变量针对值列表进行相等性测试。 5嵌套 switch 语句:可在一个 switch 内部使用另一个 switch。
运算符是告诉编译器执行特定数学或逻辑操作的符号。C# 提供丰富的内置运算符,主要分为以下类别: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 算术运算符 假设变量 A = 10,变量 B = 20: 运算符说明示例 +两操作数相加A + B = 30 -第一操作数减第二操作数A - B = -10 *两操作数相乘A * B = 200 /分子除以分母B / A = 2 %取模(整数除法余数)B % A = 0 ++自增运算符(整数值加 1)A++ = 11 --自减运算符(整数值减 1)A-- = 9 关系运算符 假设 A = 10,B = 20:
常量是指程序执行期间值不能改变的固定值,也称为字面量。常量可以是任何基本数据类型:整数、浮点数、字符、字符串,也包括枚举常量。常量与普通变量类似,但定义后值不可修改。 整数字面量 整数字面量可以是十进制或十六进制常量。前缀指定基数:0x 或 0X 表示十六进制,十进制无前缀。 后缀可以是 U(无符号)和 L(长整型)的组合,大小写不敏感,顺序任意。 合法整数字面量示例 212 // 合法 215u // 合法(无符号) 0xFeeL // 合法(十六进制长整型) 各类整数字面量示例 85 // 十进制 0x4b // 十六进
变量本质上是程序可操作的存储区域的名称。C# 中每个变量都有特定类型,类型决定了变量内存的大小、布局、可存储的值范围以及可应用的操作集合。 基本值类型分类 类型类别示例 整数类型sbyte, byte, short, ushort, int, uint, long, ulong, char 浮点类型float, double 十进制类型decimal 布尔类型true, false 可空类型Nullable<T> 类型 C# 还支持通过 enum 定义其他值类型,通过 class 定义引用类型,后续章节将详细介绍。 变量定义语法 <data_type>
类型转换是指将一种数据类型转换为另一种数据类型,也称为类型强制转换。在 C# 中,类型转换主要分为两种形式: 隐式类型转换:由 C# 自动以类型安全的方式执行。例如,从较小的整数类型转换为较大的整数类型,以及从派生类转换为基类。 显式类型转换:需要用户通过预定义函数或强制转换运算符显式完成。显式转换需要使用强制转换运算符。 显式类型转换示例 以下代码演示了将 double 类型显式转换为 int 类型: using System; namespace TypeConversionApplication { class ExplicitConversion { st
C# 变量分三大类: 值类型:直接存储数据,派生自 System.ValueType 引用类型:存储引用(内存地址),多变量可指向同一位置 指针类型:存储内存地址,仅在 unsafe 上下文使用 值类型详表 类型表示范围默认值 boolTrue/FalseFalse byte0~2550 charU+0000~U+FFFF\0 decimal128位精确十进制,28-29位有效数字0.0M double±5.0e-324 ~ ±1.7e3080.0D float±3.4e380.0F int-2,147,483,648 ~ 2,147,483,6470 long-9.22e18 ~ 9.
C# 是面向对象语言:程序由对象组成,对象通过方法交互。同类对象共享类型定义。 矩形类实战示例 using System; namespace RectangleApplication { class Rectangle { double length, width; // 成员变量 public void Acceptdetails() { length=4.5; width=3.5; } public double GetArea() { return length*width; } public void Display() {
C# 程序最小结构包含:命名空间声明、类、类方法/属性、Main 入口、语句表达式、注释。 Hello World 示例 using System; namespace HelloWorldApplication { class HelloWorld { static void Main(string[] args) { /* my first program in C# */ Console.WriteLine(Hello World); Console.ReadKey(); } } } 输出:Hello World 逐行解析 u
C# 属于 .NET Framework 生态,开发前需理解框架结构与工具链。 .NET Framework 组件 支持开发 Windows 应用、Web 应用、Web 服务,多语言互操作(C#、C++、VB、JScript、COBOL 等)。核心组件: 公共语言运行时 (CLR) .NET Framework 类库 公共语言规范 (CLS) 公共类型系统 (CTS) 元数据与程序集 Windows Forms / ASP.NET / ADO.NET WF / WPF / WCF / LINQ C# 集成开发环境 (IDE) 微软官方工具: Visual Studio 2010 (完整版
C# 是微软开发的现代、通用、面向对象编程语言,经 ECMA 与 ISO 标准化。由 Anders Hejlsberg 团队在 .NET Framework 开发期间设计,面向通用语言基础设施(CLI),支持跨平台高级语言互操作。 C# 广泛采用的核心理由 现代通用编程语言 面向对象 面向组件 易学易用 结构化语言 生成高效程序 跨平台编译 .NET Framework 核心语言 C# 强大编程特性 虽语法承袭 C/C++ 且类似 Java,但拥有独特强项: 布尔条件判断 自动垃圾回收 标准库 程序集版本控制 属性与事件 委托与事件管理 易用泛型 索引器 条件编译 简易多线程 LINQ
什么是 CGI? CGI(Common Gateway Interface,通用网关接口) 是一组标准,定义 Web 服务器与自定义脚本(CGI 程序)之间的信息交换方式。CGI 规范由 NCSA 维护,当前版本为 CGI/1.1,CGI/1.2 正在制定中。 CGI 程序可用 Python、Perl、Shell、C、C++ 等语言编写,作为外部网关程序与 HTTP 服务器交互。 Web 浏览流程与 CGI 角色 浏览器向 HTTP 服务器请求 URL(文件名)。 服务器解析 URL 查找文件:找到则返回文件,否则返回错误信息。 浏览器显示文件或错误信息。 但可配置服务器:当请求特定目录
多线程基础 多线程是多任务处理的一种专门形式。多任务允许计算机同时运行两个或更多程序,分为两类: 进程级多任务:管理多个程序的并发执行。 线程级多任务:管理同一程序内多个部分的并发执行。 多线程程序包含两个或更多可并发运行的部分,每个部分称为一个线程,定义了独立的执行路径。 C++ 标准库(C++11 前)无内置多线程支持,完全依赖操作系统提供该功能。本文基于 Linux 环境,使用 POSIX 线程库(Pthreads),该 API 广泛适用于 FreeBSD、NetBSD、GNU/Linux、macOS、Solaris 等类 UNIX 系统。 创建线程 使用 pthread_crea
C语言