C# 语法全解
C# 是一种由微软开发并基于.NET Framework的编程语言,它在设计时兼顾了C、C++和Java等语言的特点,旨在提供一种简单、现代、面向对象且类型安全的编程环境。C# 的设计目标是为了支持组件导向的编程,它在语言层面直接内置了面向组件编程所需的特性,如属性、方法和事件。
1. **基本结构与 HelloWorld**
C# 程序的基本结构通常包括类定义和方法。"Hello, World!" 是所有编程语言中的经典示例,C# 中的实现如下:
```csharp
class Program {
static void Main(string[] args) {
Console.WriteLine("Hello, World!");
}
}
```
这个简单的程序定义了一个名为 `Program` 的类,其中 `Main` 方法是程序的入口点,`Console.WriteLine` 是输出字符串的语句。
2. **类型与变量**
C# 有多种数据类型,包括值类型(如整型、浮点型、布尔型)和引用类型(如类、接口)。变量是用来存储数据的容器,声明变量时需要指定其类型,例如:
```csharp
int number = 10;
string message = "Hello";
```
3. **表达式**
表达式是由操作符和操作数组成的计算单元,例如 `2 + 2` 或 `(a * b) / c`。
4. **语句**
语句是程序中完成特定任务的最小单位,如赋值语句、条件语句(if-else)、循环语句(for, while)等。
5. **类与对象**
类是C# 中面向对象编程的基础,它定义了一组属性和方法。对象是类的实例,可以调用类中定义的成员。例如:
```csharp
class Person {
public string Name { get; set; }
public int Age { get; set; }
public void SayHello() {
Console.WriteLine($"Hello, my name is {Name} and I'm {Age} years old.");
}
}
Person person = new Person();
person.Name = "Alice";
person.Age = 30;
person.SayHello();
```
6. **成员与可访问性**
成员包括字段(变量)、方法、构造函数等。C# 提供了四种访问修饰符:public(公共)、private(私有)、protected(受保护)和 internal(内部),以控制成员的访问范围。
7. **基类与继承**
C# 支持单一继承,一个类可以继承另一个类的特性,从而实现代码重用。
8. **字段**
字段是类中的变量,用于存储数据。
9. **方法**
方法是类中定义的函数,可以有参数和返回值。参数用于传递数据,方法体包含执行的代码,局部变量在方法内声明并使用。
10. **虚方法、重写方法和抽象方法**
虚方法可以通过 `virtual` 关键字定义,子类可以使用 `override` 关键字重写虚方法。抽象方法(在抽象类中定义)没有实现,必须由子类实现。
11. **方法重载**
方法重载允许在同一类中定义多个同名但参数列表不同的方法。
12. **其他函数成员**
包括构造函数(用于初始化对象)、属性(封装字段以提供更安全的访问)、索引器(使类可以像数组一样通过索引访问)、事件(用于处理异步通信)和运算符重载(自定义操作符的行为)。
13. **结构**
结构是值类型,与类相似,但不支持继承,通常用于表示轻量级数据结构。
14. **数组**
数组是相同类型的元素集合,可以是一维、二维或多维。
15. **接口**
接口定义一组方法签名,类可以实现一个或多个接口,以指定必须实现的方法。
16. **枚举**
枚举是预定义的一组命名常量,方便表示有限的离散值集合。
17. **委托**
委托是类型安全的函数指针,用于引用方法,常用于事件处理和回调函数。
18. **属性**
属性提供了一种封装类成员的方式,允许在类的外部安全地访问和修改数据。
C# 还提供了异常处理、垃圾回收、类型安全等特性,确保了程序的稳定性和安全性。其丰富的库和生态系统使得C# 成为了开发Windows桌面应用、Web应用、移动应用以及游戏等多种类型软件的理想选择。随着.NET Core 和 .NET 5 的发展,C# 的跨平台能力也得到了显著增强,进一步巩固了其在现代软件开发中的地位。