"C#入门经典ppt"
在C#编程中,静态变量是一个重要的概念,它们属于类而不是类的实例。这意味着不论创建多少个类的实例,静态变量只有一份存储空间,所有实例共享这个变量的值。在类中声明一个静态变量,需要使用`static`关键字。例如:
```csharp
public class Student
{
private int serialNumber;
private static int counter = 0;
public Student() {
serialNumber = counter;
counter++;
}
}
```
在这个例子中,`counter`就是一个静态变量,它跟踪创建的`Student`实例的数量。每次创建新的`Student`对象时,`counter`的值会递增,而每个`Student`实例的`serialNumber`则会被设置为当前的`counter`值。
在类外部访问静态变量,可以直接通过类名来调用,无需创建类的实例。例如:
```csharp
class MyApp
{
static void Main()
{
Student stu = new Student();
Console.WriteLine(stu.serialNumber); // 输出:0
Student stu1 = new Student();
Console.WriteLine(stu1.serialNumber); // 输出:1
}
}
```
在`Main`方法中,我们创建了两个`Student`对象,并打印了它们的`serialNumber`,可以看到它们分别对应`counter`的初始值和递增后的值。
.NET框架引入了一种全新的编译和执行模型,即公共语言运行时(Common Language Runtime,CLR)和中间语言(Intermediate Language,IL)。传统的编程语言,如VB或C++,其编译器会将源代码编译成特定于平台的目标代码。而在.NET框架下,各种语言的编译器将源代码编译为中间语言(IL),这是一种平台无关的指令集。IL类似于汇编语言,但更加高级,它包含了元数据,允许跨语言的互操作性。
例如,VB.NET和C#编译后的代码都是IL,当应用程序运行时,CLR会将IL转换为机器码并执行。这种转换过程叫做JIT(Just-In-Time)编译,它在运行时完成,能够优化性能,因为转换是针对特定硬件平台进行的。
CLR作为.NET框架的核心组成部分,除了负责IL到机器码的转换,还提供了内存管理、异常处理、类型安全以及跨语言的交互等服务。这使得不同的.NET语言能够无缝地一起工作,比如VB.NET和C#组件可以在彼此的项目中自由使用。
在学习C#的过程中,理解静态变量和.NET框架的工作原理,包括CLR和IL,对于深入掌握C#编程和.NET生态系统至关重要。这些概念不仅适用于C#,也是.NET平台上所有语言共通的基础。