1. 基础语法结构
C# 程序由命名空间、类和方法组成。每个程序必须有一个 Main
方法作为入口点。using
指令用于导入命名空间,Console.WriteLine()
是常用的输出方法。
csharp
复制
下载
using System; // 引入核心命名空间class Program // 类定义 {static void Main() // 程序入口方法{Console.WriteLine("Hello C#!"); // 控制台输出} }
2. 数据类型
C# 是强类型语言,所有变量必须声明类型:
类型 | 示例 | 说明 |
---|---|---|
int | int age = 25; | 32位整数,范围: -2³¹ 到 2³¹-1 |
double | double pi = 3.14; | 64位双精度浮点数 |
bool | bool isActive = true; | 布尔值(true/false) |
char | char symbol = '#'; | 单个Unicode字符 |
string | string name = "Alice"; | Unicode字符串 |
decimal | decimal price = 19.99m; | 128位精确十进制数,适合金融计算 |
3. 变量与常量
-
变量:存储可变值,使用前必须声明类型
-
常量:使用
const
声明,值不可变 -
类型推断:
var
关键字让编译器推断类型
csharp
复制
下载
int counter = 10; // 显式类型声明 const double TAX_RATE = 0.2; // 常量 var message = "Hello"; // 编译器推断为string类型
4. 运算符
C# 包含多种运算符类型:
-
算术运算符:
+
,-
,*
,/
,%
-
比较运算符:
==
,!=
,>
,<
,>=
,<=
-
逻辑运算符:
&&
(AND),||
(OR),!
(NOT) -
赋值运算符:
=
,+=
,-=
,*=
csharp
复制
下载
int x = 15, y = 4; double quotient = x / (double)y; // 3.75 (需类型转换) bool isEven = (x % 2 == 0); // 检查偶数
5. 控制流程
控制程序执行流程的结构:
条件语句
csharp
复制
下载
int temperature = 22;if (temperature > 30)Console.WriteLine("炎热"); else if (temperature > 20)Console.WriteLine("舒适"); // 输出此项 elseConsole.WriteLine("凉爽");
循环语句
csharp
复制
下载
// for 循环:精确控制迭代次数 for (int i = 1; i <= 5; i++) {Console.Write(i + " "); // 输出: 1 2 3 4 5 }// while 循环:条件满足时执行 int count = 3; while (count > 0) {Console.Write(count-- + " "); // 输出: 3 2 1 }
6. 数组
存储相同类型元素的集合:
-
一维数组:线性数据集合
-
多维数组:表格结构数据
-
索引从0开始
csharp
复制
下载
// 一维数组 string[] colors = { "红", "绿", "蓝" }; Console.WriteLine(colors[0]); // 输出"红"// 二维数组 int[,] grid = { {1, 2}, {3, 4}, {5, 6} }; Console.WriteLine(grid[2, 0]); // 输出5
7. 方法(函数)
封装可重用代码块:
-
可接收参数
-
可返回结果
-
提高代码复用性
csharp
复制
下载
// 方法定义 static double CalculateCircleArea(double radius) {return Math.PI * radius * radius; }// 方法调用 double area = CalculateCircleArea(5.0); Console.WriteLine($"圆面积: {area:F2}"); // 输出: 圆面积: 78.54
8. 类与对象
面向对象编程的核心:
-
类:对象的蓝图模板
-
对象:类的具体实例
-
属性:描述对象特征
-
方法:对象的行为
csharp
复制
下载
class Book {// 属性public string Title { get; set; }public string Author { get; set; }// 方法public void DisplayInfo() {Console.WriteLine($"《{Title}》, 作者: {Author}");} }// 创建对象 Book myBook = new Book(); myBook.Title = "C#入门经典"; myBook.Author = "John Doe"; myBook.DisplayInfo(); // 输出书籍信息
9. 继承与多态
OOP 的核心特性:
-
继承:子类继承父类特性
-
多态:不同对象对同一消息有不同响应
-
方法重写:使用
virtual
和override
csharp
复制
下载
class Vehicle // 基类 {public virtual void StartEngine() {Console.WriteLine("引擎启动");} }class Car : Vehicle // 继承 {public override void StartEngine() // 方法重写{Console.WriteLine("汽车引擎启动");} }// 多态示例 Vehicle myVehicle = new Car(); myVehicle.StartEngine(); // 输出"汽车引擎启动"
10. 异常处理
处理运行时错误的机制:
-
try
:包含可能出错的代码 -
catch
:捕获并处理异常 -
finally
:无论是否异常都会执行
csharp
复制
下载
try {int[] nums = { 1, 2, 3 };Console.WriteLine(nums[5]); // 索引超出范围 } catch (IndexOutOfRangeException ex) // 捕获特定异常 {Console.WriteLine($"错误: {ex.Message}"); } catch (Exception ex) // 通用异常捕获 {Console.WriteLine($"未知错误: {ex.Message}"); } finally {Console.WriteLine("清理资源完成"); }
11. 字符串操作
字符串是引用类型,常用操作:
-
拼接:
+
或$"{}"
-
格式化:
ToUpper()
,ToLower()
-
查询:
Contains()
,IndexOf()
-
截取:
Substring()
csharp
复制
下载
string greeting = " Hello C# "; Console.WriteLine(greeting.Trim()); // 移除空格: "Hello C#" Console.WriteLine(greeting.ToUpper()); // 转大写: " HELLO C# " Console.WriteLine(greeting.Contains("C#")); // 检查包含: True Console.WriteLine($"长度: {greeting.Length}"); // 字符串插值
12. 集合类型
System.Collections.Generic
命名空间提供:
-
List<T>:动态数组
-
Dictionary<TKey,TValue>:键值对集合
-
Queue<T>:先进先出队列
-
Stack<T>:后进先出堆栈
csharp
复制
下载
using System.Collections.Generic;// List示例 List<int> numbers = new List<int> { 10, 20, 30 }; numbers.Add(40); Console.WriteLine($"第二个元素: {numbers[1]}"); // 20// Dictionary示例 Dictionary<string, int> ages = new Dictionary<string, int>(); ages.Add("Alice", 28); ages["Bob"] = 32; // 另一种添加方式 Console.WriteLine($"Alice的年龄: {ages["Alice"]}");
完整案例:学生成绩管理系统
csharp
复制
下载
using System; using System.Collections.Generic;class Student {public string Name { get; set; }public List<int> Grades { get; } = new List<int>();public void AddGrade(int grade) {if (grade < 0 || grade > 100)throw new ArgumentException("成绩必须在0-100之间");Grades.Add(grade);}public double CalculateAverage(){if (Grades.Count == 0) return 0;double sum = 0;foreach (int grade in Grades)sum += grade;return sum / Grades.Count;} }class Program {static void Main(){try{Student student = new Student { Name = "张三" };student.AddGrade(85);student.AddGrade(92);student.AddGrade(78);Console.WriteLine($"{student.Name}的平均成绩: {student.CalculateAverage():F1}");}catch (Exception ex){Console.WriteLine($"错误: {ex.Message}");}} }
程序说明:
-
创建
Student
类管理学生信息和成绩 -
使用
List<int>
存储多个成绩 -
实现成绩添加和平均分计算方法
-
添加异常处理确保成绩有效性
-
主程序创建学生对象并计算平均分
输出:
text
复制
下载
张三的平均成绩: 85.0
关键概念总结
概念 | 说明 |
---|---|
面向对象 | 封装、继承、多态三大特性,使用类(class)和对象(object)构建程序 |
类型系统 | 值类型(int, struct)直接存储值,引用类型(class, string)存储内存地址 |
内存管理 | 自动垃圾回收(GC),using 语句管理资源释放 |
核心特性 | 属性(Properties)、索引器、委托(Delegates)、事件(Events) |
高级功能 | LINQ(语言集成查询)、异步编程(async/await)、反射(Reflection) |
开发框架 | .NET Framework/.NET Core,支持控制台、Web(ASP.NET)、桌面(WinForms/WPF)等应用 |
学习路线建议:
掌握基础语法和OOP概念
学习常用.NET类库(集合、文件IO、网络)
实践数据库操作(ADO.NET/Entity Framework)
探索高级主题(异步编程、LINQ、依赖注入)
构建实际项目(Web API、桌面应用)