C# 入门指南:快速掌握核心概念
C# (发音为 “C-sharp”) 是一种由 Microsoft 开发的现代、通用、面向对象的编程语言。它根植于 C++ 和 Java 语言,但在设计上更注重简洁、类型安全和高性能。C# 是 .NET 平台的核心语言,广泛应用于 Windows 桌面应用、Web 应用(ASP.NET Core)、游戏开发(Unity)、移动应用(Xamarin/MAUI)、云计算以及物联网等领域。
对于初学者而言,掌握 C# 的核心概念是迈向高效编程的第一步。本文将带你快速了解 C# 的几个关键要素。
1. 变量与数据类型 (Variables and Data Types)
在 C# 中,变量是用来存储数据的容器。每个变量在使用前都必须声明其类型。C# 是一种强类型语言,这意味着一旦变量被声明为某种类型,就不能存储其他类型的数据。
基本数据类型:
- 整型 (Integers):
int(最常用,32位),long(64位),short(16位),byte(8位无符号) 等。 - 浮点型 (Floating-point numbers):
float(单精度),double(双精度,最常用),decimal(用于高精度财务计算)。 - 布尔型 (Booleans):
bool(只能存储true或false)。 - 字符型 (Characters):
char(存储单个 Unicode 字符)。 - 字符串型 (Strings):
string(存储文本序列)。
变量声明与初始化:
“`csharp
// 声明一个整型变量并初始化
int age = 30;
// 声明一个字符串变量
string name = “张三”;
// 声明一个布尔变量
bool isActive = true;
// 声明一个常量 (值在编译时确定,不可更改)
const double PI = 3.14159;
“`
var 关键字 (隐式类型局部变量):
C# 3.0 引入了 var 关键字,允许编译器根据初始化表达式推断变量的类型。这有助于代码更简洁,但并不意味着 C# 变成了动态类型语言,类型仍然在编译时确定。
csharp
var count = 100; // 编译器推断为 int
var message = "Hello, C#"; // 编译器推断为 string
2. 控制流语句 (Control Flow Statements)
控制流语句决定了程序执行的顺序,是所有编程语言的基础。
条件语句 (Conditional Statements):
-
if-else: 根据条件执行不同的代码块。csharp
int score = 85;
if (score >= 60)
{
Console.WriteLine("及格");
}
else
{
Console.WriteLine("不及格");
}
*switch: 根据表达式的值选择执行不同的代码块。csharp
string day = "Monday";
switch (day)
{
case "Monday":
Console.WriteLine("周一");
break;
case "Sunday":
Console.WriteLine("周末");
break;
default:
Console.WriteLine("其他日子");
break;
}
循环语句 (Looping Statements):
-
for循环: 适用于已知循环次数的情况。csharp
for (int i = 0; i < 5; i++)
{
Console.WriteLine($"当前数字是: {i}");
}
*while循环: 只要条件为真,就重复执行代码块。csharp
int i = 0;
while (i < 3)
{
Console.WriteLine($"While 循环: {i}");
i++;
}
*do-while循环: 至少执行一次,然后根据条件重复。csharp
int j = 0;
do
{
Console.WriteLine($"Do-While 循环: {j}");
j++;
} while (j < 2);
*foreach循环: 遍历集合(如数组、列表)中的每个元素。csharp
string[] fruits = { "Apple", "Banana", "Cherry" };
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}
3. 方法 (Methods)
方法是一段执行特定任务的代码块。它们有助于组织代码、提高复用性,并使程序更易于理解和维护。
方法声明:
“`csharp
// 无参数、无返回值的方法
void Greet()
{
Console.WriteLine(“你好!”);
}
// 带参数、无返回值的方法
void GreetUser(string userName)
{
Console.WriteLine($”你好,{userName}!”);
}
// 带参数、有返回值的方法
int Add(int a, int b)
{
return a + b;
}
// 调用方法
Greet();
GreetUser(“李四”);
int sum = Add(5, 3); // sum 将是 8
Console.WriteLine($”5 + 3 = {sum}”);
“`
4. 类与对象 (Classes and Objects)
C# 是一种面向对象编程 (OOP) 语言。OOP 的核心思想是将数据(属性)和操作数据的方法(行为)封装在称为“对象”的实体中。而“类”则是创建对象的蓝图或模板。
- 类 (Class): 定义了对象的结构和行为。
- 对象 (Object): 是类的实例。
“`csharp
// 定义一个 Person 类
class Person
{
// 属性 (数据)
public string Name { get; set; }
public int Age { get; set; }
// 构造函数 (创建对象时调用)
public Person(string name, int age)
{
Name = name;
Age = age;
}
// 方法 (行为)
public void Introduce()
{
Console.WriteLine($"我叫 {Name},今年 {Age} 岁。");
}
}
// 在 Main 方法中创建并使用对象
class Program
{
static void Main(string[] args)
{
// 创建 Person 类的对象 (实例)
Person person1 = new Person(“王五”, 25);
person1.Introduce(); // 输出: 我叫 王五,今年 25 岁。
Person person2 = new Person("赵六", 40);
person2.Introduce(); // 输出: 我叫 赵六,今年 40 岁。
}
}
“`
面向对象三大特性 (Encapsulation, Inheritance, Polymorphism):
- 封装 (Encapsulation): 将数据(属性)和方法(行为)包装在一个单元(类)中,并限制对内部细节的直接访问,通过公共方法提供接口。C# 通过访问修饰符(如
public,private,protected)实现封装。 - 继承 (Inheritance): 允许一个类(子类/派生类)继承另一个类(父类/基类)的属性和方法,从而实现代码复用和扩展。
- 多态 (Polymorphism): 允许不同类的对象对同一个消息(方法调用)作出不同的响应。C# 通过方法重写 (Overriding) 和接口 (Interfaces) 实现多态。
5. 命名空间 (Namespaces)
命名空间用于组织代码,避免命名冲突。它将相关的类、接口、结构体、委托等类型分组,形成一个逻辑上的层级结构。
“`csharp
using System; // 引入 System 命名空间,包含 Console 类
namespace MyApp
{
namespace Utils
{
class Helper
{
public static void Log(string message)
{
Console.WriteLine($”[日志] {message}”);
}
}
}
class Program
{
static void Main(string[] args)
{
// 调用 MyApp.Utils 命名空间下的 Helper 类
MyApp.Utils.Helper.Log("程序启动!");
}
}
}
``using
通过关键字可以简化对命名空间内类型的访问,例如using MyApp.Utils;后,可以直接Helper.Log(…)`。
6. 异常处理 (Exception Handling)
异常是指程序运行时发生的错误或不正常情况,它会中断程序的正常流程。C# 使用 try-catch-finally 块来优雅地处理异常。
csharp
try
{
// 可能会引发异常的代码块
int dividend = 10;
int divisor = 0;
int result = dividend / divisor; // 这里会引发 DivideByZeroException
Console.WriteLine($"结果: {result}");
}
catch (DivideByZeroException ex)
{
// 捕获特定类型的异常
Console.WriteLine("错误:除数不能为零!");
Console.WriteLine($"详细信息: {ex.Message}");
}
catch (Exception ex)
{
// 捕获所有其他类型的异常(通用异常捕获)
Console.WriteLine("发生了未知错误!");
Console.WriteLine($"详细信息: {ex.Message}");
}
finally
{
// 无论是否发生异常,此代码块总会执行,常用于资源清理
Console.WriteLine("异常处理结束。");
}
总结
本文简要介绍了 C# 的核心概念,包括变量与数据类型、控制流语句、方法、类与对象、命名空间以及异常处理。掌握这些基础知识是深入学习 C# 和 .NET 平台的前提。
C# 的强大之处在于其丰富的特性和庞大的生态系统。从这些核心概念出发,你可以进一步探索 LINQ (Language Integrated Query)、异步编程 (async/await)、泛型 (Generics)、委托 (Delegates) 和事件 (Events) 等高级主题。
学习编程是一个循序渐进的过程,多动手实践,编写代码,不断尝试和调试,才能真正掌握这门强大的语言。祝你在 C# 的学习旅程中取得成功!