C#编程:结构化设计的局限与C#的优势

需积分: 11 0 下载量 32 浏览量 更新于2024-07-13 收藏 4.81MB PPT 举报
"结构程序设计的不足—代码不能重用-C#经典教程" 在传统的结构化程序设计中,代码往往被组织成一系列顺序执行的步骤,每个步骤针对特定的任务。这样的设计方式在早期的编程实践中非常常见,比如在C语言中,如给定的示例所示。然而,这段代码揭示了结构化程序设计的一个显著缺点:代码复用性差。 在示例中,我们看到了创建两辆汽车(car1 和 car2)的逻辑,每辆汽车都有门的数量(doorN)、颜色(color)和速度(speed)属性。为了创建两辆不同的车,我们不得不重复相同的代码段,只是将变量值改变。这种做法不仅使代码冗长,而且不易维护。如果需要修改汽车属性的打印格式或添加新属性,我们必须在每个实例中分别修改,这违反了“Don't Repeat Yourself”(DRY)原则。 C#作为一种现代的面向对象编程语言,旨在解决这些问题。它引入了类(Class)的概念,允许我们将数据和操作数据的方法封装在一起,形成可重用的模块。例如,我们可以创建一个`Car`类,其中包含`doorN`、`color`和`speed`作为成员变量,以及用于打印这些属性的方法。这样,创建多辆汽车时,只需实例化`Car`类的不同对象,并设置相应的属性值,无需重复代码。 ```csharp public class Car { public int DoorN { get; set; } public int Color { get; set; } public int Speed { get; set; } public void PrintCarInfo() { Console.WriteLine($"{DoorN} {Color} {Speed}"); } } public static void Main() { Car car1 = new Car(); car1.DoorN = 2; car1.Color = 0; car1.Speed = 100; car1.PrintCarInfo(); Car car2 = new Car(); car2.DoorN = 4; car2.Color = 1; car2.Speed = 80; car2.PrintCarInfo(); } ``` 这里,`Car`类代表了一个汽车的抽象,每个实例(car1 和 car2)都是该类的具体表现。通过这种方式,我们不仅可以简化代码,还能更容易地扩展功能。如果要添加新属性或更改打印格式,只需在`Car`类中进行改动,所有使用到这个类的地方都会自动更新。 .NET Framework 是微软推出的软件开发平台,它包括了Common Language Runtime (CLR)、Just-In-Time (JIT) 编译器、Common Type System (CTS) 和 Microsoft Intermediate Language (MSIL) 等组件。CLR作为运行时环境,负责管理代码的执行,包括类型安全检查、垃圾回收和异常处理。JIT编译器将源代码编译为机器码,而CTS确保不同语言编写的代码可以在.NET环境中无缝交互。MSIL是.NET平台上的中间语言,代码首先会被编译成MSIL,然后在运行时由JIT编译为特定平台的机器码。 `.NET Framework`还提供了丰富的命名空间,如System、System.IO、System.Collections.Generic等,涵盖了许多基础和高级功能,使得开发者可以便捷地利用这些库构建应用程序。C#作为.NET Framework的一部分,可以直接利用这些服务,使得开发更加高效和便捷。 总结起来,C#通过引入面向对象编程和.NET Framework的支持,克服了结构化程序设计中的代码重用问题,提高了代码的可读性、可维护性和可扩展性。它结合了C/C++的灵活性和VB的高效性,为现代软件开发提供了强大的工具。