C# 基础教程:快速掌握
C#(读作 “C Sharp”)是一种由微软开发的现代、面向对象的编程语言,广泛应用于 Windows 桌面应用、Web 应用(ASP.NET)、游戏开发(Unity)、移动应用(Xamarin)以及云计算等领域。凭借其强大的功能、丰富的库支持和活跃的社区,C# 成为初学者和专业开发人员的理想选择。
本教程旨在帮助您快速掌握 C# 的基本概念和语法,为您的编程之旅打下坚实基础。
1. 为什么选择 C#?
- 面向对象: C# 是一种纯粹的面向对象语言,支持封装、继承和多态等核心特性,有助于构建模块化、可维护的代码。
- 现代且强大: 结合了 C++ 的强大功能和 Java 的易用性,不断发展以适应最新的编程范式和技术趋势。
- 跨平台: 借助 .NET Core 和 .NET 平台,C# 不再局限于 Windows,可以轻松在 Linux、macOS 等系统上开发和运行应用。
- 丰富的生态系统: 拥有庞大的 .NET 框架和 NuGet 包管理器,提供了海量的预构建库和工具。
- 集成开发环境(IDE): Visual Studio 提供了卓越的开发体验,包括智能代码补全、调试工具和项目管理。
2. 环境搭建(简要)
开始学习 C# 最简单的方式是安装 Visual Studio 或 Visual Studio Code。
- Visual Studio (Windows/Mac): 功能全面的 IDE,适合大型项目开发。下载安装时选择 “.NET 桌面开发” 或 “.NET Web 开发” 等工作负载。
- Visual Studio Code (跨平台): 轻量级但功能强大的代码编辑器,配合 C# 扩展可用于 C# 开发。
安装完成后,您就可以创建您的第一个 C# 项目了。
3. 第一个 C# 程序:Hello World
让我们从经典的 “Hello World” 程序开始。
“`csharp
using System; // 引入System命名空间,其中包含Console类
namespace HelloWorldApp // 声明一个命名空间,用于组织代码
{
class Program // 声明一个类,C# 中的所有代码都必须在类中
{
static void Main(string[] args) // Main 方法是程序的入口点
{
// Console.WriteLine() 用于在控制台输出文本
Console.WriteLine(“Hello, World!”);
// Console.ReadKey() 让程序等待用户按键,避免控制台窗口立即关闭
Console.ReadKey();
}
}
}
“`
代码解释:
using System;: 导入System命名空间,其中包含了Console类,用于输入输出操作。namespace HelloWorldApp: 命名空间用于组织代码,避免命名冲突。class Program: C# 是一种面向对象的语言,所有代码都必须包含在类中。Program是我们为应用程序定义的类。static void Main(string[] args): 这是程序的入口点。static: 表示Main方法可以直接通过类名调用,无需创建类的实例。void: 表示Main方法不返回任何值。string[] args: 用于接收命令行参数。
Console.WriteLine("Hello, World!");:Console类提供了与控制台交互的方法,WriteLine用于输出一行文本。Console.ReadKey();: 等待用户按下一个键,防止控制台窗口在程序执行完毕后立即关闭。
4. 基本语法要素
4.1 变量与数据类型
变量用于存储数据。C# 是一种强类型语言,这意味着您在声明变量时必须指定其数据类型。
| 数据类型 | 描述 | 示例 |
|---|---|---|
int |
整数(-20亿 到 +20亿 左右) | int age = 30; |
double |
双精度浮点数(小数) | double price = 19.99; |
float |
单精度浮点数 | float temperature = 25.5f; |
bool |
布尔值(true 或 false) |
bool isLoggedIn = true; |
char |
单个字符 | char initial = 'J'; |
string |
文本字符串 | string name = "Alice"; |
decimal |
高精度浮点数(常用于金融) | decimal salary = 50000.75m; |
long |
长整数 | long population = 8000000000L; |
var (隐式类型) |
编译器根据初始值推断类型 | var count = 10; (int)var message = "Hello"; (string) |
声明与初始化:
“`csharp
int quantity; // 声明一个整数变量
quantity = 100; // 赋值
string greeting = “Hello C#!”; // 声明并初始化一个字符串变量
const double PI = 3.14159; // const 关键字用于声明常量,值不可改变
// PI = 3.14; // 这会导致编译错误
“`
4.2 运算符
C# 支持常见的算术、关系、逻辑、赋值等运算符。
- 算术运算符:
+,-,*,/,%(取模) - 关系运算符:
==(等于),!=(不等于),>,<,>=,<= - 逻辑运算符:
&&(逻辑与),||(逻辑或),!(逻辑非) - 赋值运算符:
=,+=,-=,*=等 - 递增/递减运算符:
++(递增),--(递减)
“`csharp
int a = 10, b = 5;
Console.WriteLine(a + b); // 15
Console.WriteLine(a – b); // 5
Console.WriteLine(a * b); // 50
Console.WriteLine(a / b); // 2
Console.WriteLine(a % b); // 0
bool condition1 = true;
bool condition2 = false;
Console.WriteLine(condition1 && condition2); // False
Console.WriteLine(condition1 || condition2); // True
Console.WriteLine(!condition1); // False
a += 2; // a 现在是 12
Console.WriteLine(a);
“`
5. 控制流
控制流语句用于根据条件执行不同的代码块,或重复执行代码。
5.1 条件语句:if, else if, else
“`csharp
int score = 85;
if (score >= 90)
{
Console.WriteLine(“优秀!”);
}
else if (score >= 60)
{
Console.WriteLine(“及格。”);
}
else
{
Console.WriteLine(“不及格。”);
}
“`
5.2 循环语句
-
for循环: 当您知道需要重复执行代码的次数时。csharp
for (int i = 0; i < 5; i++)
{
Console.WriteLine($"for 循环计数: {i}"); // 字符串插值
} -
while循环: 当您希望只要条件为true就一直循环时。csharp
int count = 0;
while (count < 3)
{
Console.WriteLine($"while 循环计数: {count}");
count++;
} -
do-while循环: 至少执行一次循环体,然后检查条件。csharp
int num = 0;
do
{
Console.WriteLine($"do-while 循环计数: {num}");
num++;
} while (num < 1); // 条件为真,将继续循环,这里只会执行一次 -
foreach循环: 用于遍历集合(如数组、列表)。csharp
string[] fruits = { "Apple", "Banana", "Cherry" };
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}
5.3 switch 语句
根据变量的值执行不同的代码块。
“`csharp
char grade = ‘B’;
switch (grade)
{
case ‘A’:
Console.WriteLine(“非常好!”);
break; // 必须使用 break 退出 switch 块
case ‘B’:
Console.WriteLine(“良好。”);
break;
case ‘C’:
Console.WriteLine(“及格。”);
break;
default:
Console.WriteLine(“未知等级。”);
break;
}
“`
6. 方法 (Methods)
方法(也称为函数)是执行特定任务的代码块。它们有助于组织代码、提高复用性。
“`csharp
class Calculator
{
// 一个不带参数,不返回值的 void 方法
public void SayHello()
{
Console.WriteLine(“你好,C#!”);
}
// 带参数,返回一个 int 值的方法
public int Add(int num1, int num2)
{
return num1 + num2;
}
// 另一个方法,展示如何调用其他方法
public void PerformCalculations()
{
SayHello(); // 调用 SayHello 方法
int result = Add(5, 3); // 调用 Add 方法
Console.WriteLine($"5 + 3 = {result}");
Console.WriteLine($"10 * 2 = {Multiply(10, 2)}"); // 直接在 Console.WriteLine 中调用 Multiply
}
// 静态方法,可以直接通过类名调用,无需创建对象
public static int Multiply(int x, int y)
{
return x * y;
}
}
// 在 Main 方法中调用这些方法
// static void Main(string[] args)
// {
// Calculator myCalculator = new Calculator(); // 创建 Calculator 类的实例(对象)
// myCalculator.SayHello();
// int sum = myCalculator.Add(7, 8);
// Console.WriteLine($”7 + 8 = {sum}”);
// // 调用静态方法
// int product = Calculator.Multiply(4, 5);
// Console.WriteLine($”4 * 5 = {product}”);
// myCalculator.PerformCalculations();
// Console.ReadKey();
// }
“`
7. 类与对象(简介)
C# 是一种面向对象的语言,类是对象的蓝图,而对象是类的实例。
“`csharp
// 定义一个 Car 类
class Car
{
// 属性 (Properties)
public string Model { get; set; } // 自动实现的属性
public string Color { get; set; }
public int Year { get; private set; } // private set 表示只能在类内部设置 Year
// 构造函数 (Constructor) - 在创建对象时调用
public Car(string model, string color, int year)
{
Model = model;
Color = color;
Year = year;
}
// 方法 (Method)
public void StartEngine()
{
Console.WriteLine($"{Color} {Model} 的引擎启动了!");
}
public void DisplayInfo()
{
Console.WriteLine($"车型: {Model}, 颜色: {Color}, 年份: {Year}");
}
}
// 在 Main 方法中创建并使用对象
// static void Main(string[] args)
// {
// // 创建 Car 类的两个对象(实例)
// Car myCar = new Car(“Tesla Model 3”, “Red”, 2023);
// Car anotherCar = new Car(“Ford Mustang”, “Blue”, 2022);
// myCar.DisplayInfo();
// myCar.StartEngine();
// anotherCar.DisplayInfo();
// anotherCar.StartEngine();
// // myCar.Year = 2024; // 编译错误,因为 Year 的 set 是 private
// Console.ReadKey();
// }
“`
8. 总结
本教程涵盖了 C# 的基础知识,包括:
Hello World程序- 变量和数据类型
- 常用运算符
- 控制流语句 (
if/else,for,while,foreach,switch) - 方法
- 类和对象的基础概念
这只是 C# 学习的起点。要成为一名熟练的 C# 开发者,您还需要深入学习以下内容:
- 更复杂的面向对象概念: 继承、多态、接口、抽象类。
- 集合:
List<T>,Dictionary<TKey, TValue>等。 - 异常处理:
try-catch-finally。 - 文件操作: 读写文件。
- LINQ (Language Integrated Query): 强大的数据查询语言。
- 异步编程:
async和await。 - .NET 框架和 .NET Core: 深入了解其架构和库。
祝您在 C# 学习之旅中取得成功!