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# 是静态类型语言,因此声明变量时需明确其数据类型。

基础数据类型

类型描述示例
int32 位整数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#!"; // 存储文本  

变量命名规则

变量名需遵循以下规则:

  1. 以字母或下划线开头;
  2. 包含字母、数字或下划线;
  3. 区分大小写;
  4. 避免使用 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 等新特性,以保持技术竞争力。

最新发布