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("舒适"); // 输出此项 else Console.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、桌面应用)