C# 基础知识总结(带详细文字说明)

发布于:2025-06-20 ⋅ 阅读:(25) ⋅ 点赞:(0)
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}");
        }
    }
}

程序说明

  1. 创建 Student 类管理学生信息和成绩

  2. 使用 List<int> 存储多个成绩

  3. 实现成绩添加和平均分计算方法

  4. 添加异常处理确保成绩有效性

  5. 主程序创建学生对象并计算平均分

输出

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)等应用

学习路线建议

  1. 掌握基础语法和OOP概念

  2. 学习常用.NET类库(集合、文件IO、网络)

  3. 实践数据库操作(ADO.NET/Entity Framework)

  4. 探索高级主题(异步编程、LINQ、依赖注入)

  5. 构建实际项目(Web API、桌面应用)


网站公告

今日签到

点亮在社区的每一天
去签到