C# 基本语法(千字长文)
💡一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 ;- 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;
截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观
C# 是微软开发的面向对象编程语言,因其高效性、灵活性和跨平台能力,成为开发 Windows 应用、游戏(通过 Unity)、Web API 和企业级解决方案的热门选择。对于编程初学者和中级开发者来说,掌握 C# 的基本语法是构建复杂项目的基础。本文将通过循序渐进的方式,结合生活化比喻和代码示例,系统讲解 C# 的核心语法知识,帮助读者快速入门并提升编程能力。
变量与数据类型:程序的“储物柜”
在编程中,变量可以理解为现实生活中的储物柜,用于存储不同类型的信息。C# 是静态类型语言,因此声明变量时需明确其数据类型。
基础数据类型
类型 | 描述 | 示例 |
---|---|---|
int | 32 位整数 | int age = 25; |
double | 双精度浮点数 | double pi = 3.14159; |
string | 字符串(引用类型) | string name = "Alice"; |
bool | 布尔值(true 或 false) | bool isStudent = true; |
代码示例:
int score = 95; // 存储整数
double temperature = 22.5; // 存储小数
string greeting = "Hello, C#!"; // 存储文本
变量命名规则
变量名需遵循以下规则:
- 以字母或下划线开头;
- 包含字母、数字或下划线;
- 区分大小写;
- 避免使用 C# 关键字(如
class
,if
)。
比喻:
变量名如同储物柜的标签,清晰的标签(如 studentAge
)比模糊的标签(如 x
)更易理解。
运算符与表达式:程序的“计算器”
运算符是执行计算的核心工具,分为算术、比较、逻辑等类型。
常用运算符
类型 | 符号 | 说明 | 示例 |
---|---|---|---|
算术 | + | 加法 | 5 + 3 → 8 |
比较 | == | 等于 | score == 100 → true |
逻辑 | && | 与(两个条件同时为真) | age > 18 && isMember → true |
代码示例:
int sum = 10 + 20 * 3; // 先乘后加,结果为 70
bool isQualified = (score >= 60) && (attendance > 90);
三元运算符:简洁的条件判断
// 等价于 if-else 语句
string result = (grade >= 60) ? "Pass" : "Fail";
控制结构:程序的“交通指挥官”
控制结构决定了代码的执行流程,如同交通指挥官引导车辆有序通行。
条件语句:if-else
根据条件真假执行不同代码块:
int temperature = 28;
if (temperature > 30) {
Console.WriteLine("今天很热!");
} else if (temperature > 25) {
Console.WriteLine("天气舒适。");
} else {
Console.WriteLine("稍凉,建议穿外套。");
}
循环:重复执行的“永动机”
while 循环
int count = 0;
while (count < 5) {
Console.WriteLine($"当前计数:{count}");
count++; // 必须更新条件,否则死循环
}
for 循环(更常用)
for (int i = 0; i < 3; i++) {
Console.WriteLine($"第 {i} 次循环");
}
方法:封装功能的“工具箱”
方法是执行特定任务的代码块,如同工具箱中的工具,按需调用。
方法定义与调用
// 声明方法
static void GreetUser(string name) {
Console.WriteLine($"欢迎你,{name}!");
}
// 调用方法
GreetUser("Bob"); // 输出:欢迎你,Bob!
参数与返回值
// 计算两个数之和并返回结果
static int AddNumbers(int a, int b) {
return a + b;
}
int total = AddNumbers(5, 7); // total = 12
比喻:
方法如同厨房里的食谱,参数是食材,返回值是最终的菜肴。
类与对象:面向对象的“积木块”
C# 是面向对象语言,类是对象的蓝图,对象是类的实例。
定义类与创建对象
// 定义类
public class Car {
public string Model; // 属性
public void StartEngine() { // 方法
Console.WriteLine("引擎已启动!");
}
}
// 使用对象
Car myCar = new Car();
myCar.Model = "Tesla Model S";
myCar.StartEngine(); // 输出:引擎已启动!
访问修饰符:控制“隐私”
修饰符 | 可见性范围 |
---|---|
public | 任何地方可见 |
private | 仅当前类可见 |
异常处理:程序的“安全网”
通过 try-catch
捕获并处理错误,避免程序崩溃。
try {
int result = 10 / 0; // 除以零会触发异常
} catch (DivideByZeroException e) {
Console.WriteLine($"错误:{e.Message}"); // 捕获具体异常类型
} catch (Exception ex) {
Console.WriteLine("其他未知错误");
} finally {
Console.WriteLine("无论是否出错,此代码总会执行");
}
集合与泛型:数据的“智能容器”
集合用于存储多个元素,泛型提供类型安全的容器。
List 示例
List<int> scores = new List<int>(); // 创建整数列表
scores.Add(85);
scores.Add(92);
foreach (int score in scores) {
Console.WriteLine(score); // 输出 85 和 92
}
字典(Dictionary)
Dictionary<string, int> studentAges = new Dictionary<string, int>();
studentAges.Add("Alice", 22);
studentAges.Add("Bob", 24);
// 通过键获取值
int aliceAge = studentAges["Alice"]; // aliceAge = 22
委托与事件:解耦的“消息传递者”
委托是方法的引用,事件是委托的特殊用途,用于解耦对象间的通信。
委托基础
// 定义委托类型
public delegate void MessageHandler(string message);
// 实现委托指向的方法
public void DisplayMessage(string msg) {
Console.WriteLine($"接收到消息:{msg}");
}
// 使用委托
MessageHandler handler = DisplayMessage;
handler("你好,委托!"); // 输出:接收到消息:你好,委托!
结论
本文系统梳理了 C# 基本语法的核心知识点,从变量、控制结构到面向对象编程,逐步构建了编程思维的框架。通过实际案例和生活化比喻,读者可以更直观地理解抽象概念。掌握这些基础后,开发者可进一步学习高级特性(如 LINQ、多线程)或探索 .NET 生态系统。
C# 的语法设计兼顾严谨性与实用性,其在微软生态中的主导地位使其成为开发者职业发展的重要技能。建议读者通过编写小型项目(如计算器、待办事项应用)巩固知识,并持续关注 C# 的版本更新,例如 C# 12 引入的 async streaming
等新特性,以保持技术竞争力。