C#编程:创建与使用商品类(Commodity)示例

版权申诉
0 下载量 51 浏览量 更新于2024-08-10 收藏 39KB DOC 举报
“C#类的使用案例展示了如何创建一个表示商品的类,包含商品的编号、名称、价格和产地等属性,以及构造函数、只读属性、事件处理和方法的实现。” 在C#编程中,类是面向对象设计的基础,用于封装数据和行为。在这个案例中,我们看到一个名为`Commodity`的类,它代表了一个商品实体。这个类包含了以下关键知识点: 1. **构造函数**:`Commodity`类提供了两个构造函数。一个默认构造函数`public Commodity()`,没有参数,另一个带两个字符串参数的构造函数`public Commodity(string id, string name)`,用于初始化商品的编号和名称。 2. **属性**:类中定义了四个属性来存储商品信息。`Id`和`Name`是只读属性,分别用于存储商品的编号和名称。`Price`属性用于存储商品的价格,同时在设置新值时触发价格变化事件。`Address`属性用于存储商品的产地,具有标准的getter和setter。 3. **只读属性**:`Id`属性通过`get`访问器提供值,但没有`set`访问器,因此在对象创建后不能更改。这样可以确保商品编号的不可变性。 4. **事件和委托**:`Commodity`类定义了一个名为`ChangPrice`的委托,它表示价格变化的事件处理器。同时,`Change`是一个事件,当商品价格改变时,会触发此事件。`Price`属性的`set`访问器中,如果`Change`事件已订阅,那么就会调用它。 5. **方法**:`ShowInfo`方法返回一个字符串,展示商品的主要信息,包括编号、名称和价格。这对于调试或显示商品详情非常有用。 6. **事件订阅**:在代码的按钮点击事件处理函数`button1_Click`中,创建了一个`Commodity`实例`c1`,并将`ff`方法(未在给出的部分中定义)附加到`Change`事件上。当商品价格改变时,`ff`方法会被调用,通常这会显示一个消息框通知用户价格已被调整。 7. **属性赋值**:在创建`c1`对象时,通过构造函数传入的商品编号和名称将自动赋值给对应的属性。然而,在注释掉的代码行中,尝试直接设置`Id`和`Name`,但由于它们是只读属性,这种方式是无效的。 这个案例充分展示了C#类的设计原则,包括数据封装、属性的使用、构造函数、事件处理和方法的实现,对于初学者理解面向对象编程和C#语法是非常有价值的。