C#对象的创建和使用(附带实例)
C# 是面向对象的程序设计语言,所有的问题都通过对象来处理,对象可以通过操作类的属性和方法解决相应的问题,所以了解对象的产生、操作和销毁对学习 C# 是十分必要的。
在 C# 语言中,通过 new 关键字来创建对象。每实例化一个对象,就会自动调用一次构造函数,这个过程实质上就是创建对象的过程。准确地说,可以在 C# 语言中使用 new 关键字调用构造函数来创建对象。
语法如下:
当用户使用 new 关键字创建一个对象后,可以使用“对象.类成员”来获取对象的属性和行为。对象的属性和行为在类中是通过类成员变量和成员方法的形式来表示的,所以当对象获取类成员时,也就相应地获取了对象的属性和行为。
【实例】创建一个控制台应用程序,在程序中创建一个 cStockInfo 类,表示库存商品类,在该类中定义一个 FullName 属性和 ShowGoods 方法;接着在 Program 类中创建 cStockInfo 类的对象,并使用该对象调用其中的属性和方法。代码如下:
在谈到垃圾回收机制之前,首先需要了解何种对象会被 .NET 垃圾回收器视为垃圾。主要包括以下两种情况:
1) 对象引用超过其作用范围,则这个对象将被视为垃圾,如下图所示:
2) 将对象赋值为 null,如下图所示:

图 2 对象被赋置为null时将被销毁
从这里可以看出,张三和李四有很多共同点,他们都在某个农村生活,早上都要出门务农,晚上都会回家。对于这样相似的对象,就可以将其抽象出一个数据类型,此处抽象为农民。这样,只要将农民这个类型编写好,程序中就可以方便地创建张三和李四这样的对象。若需要更改代码,则只对农民类型进行修改即可。
综上所述,可以看出类与对象的区别:类是具有相同或相似结构、操作和约束规则的对象组成的集合,而对象是某一类的具体化实例,每一个类都是具有某些共同特征的对象的抽象。
C#对象的创建
对象可以认为是在一类事物中抽象出某一个特例,通过这个特例来处理这类事物出现的问题。在 C# 语言中,通过 new 关键字来创建对象。每实例化一个对象,就会自动调用一次构造函数,这个过程实质上就是创建对象的过程。准确地说,可以在 C# 语言中使用 new 关键字调用构造函数来创建对象。
语法如下:
Test test = new Test(); Test test = new Test("a");参数及其说明如下表所示:
参 数 | 说 明 |
---|---|
Test | 类名 |
test | 创建 Test 类对象 |
new | 创建对象操作符 |
"a" | 构造函数的参数 |
当用户使用 new 关键字创建一个对象后,可以使用“对象.类成员”来获取对象的属性和行为。对象的属性和行为在类中是通过类成员变量和成员方法的形式来表示的,所以当对象获取类成员时,也就相应地获取了对象的属性和行为。
【实例】创建一个控制台应用程序,在程序中创建一个 cStockInfo 类,表示库存商品类,在该类中定义一个 FullName 属性和 ShowGoods 方法;接着在 Program 类中创建 cStockInfo 类的对象,并使用该对象调用其中的属性和方法。代码如下:
public class cStockInfo // 自定义库存商品类 { public string FullName // 自动实现属性 { get; set; } public void ShowGoods() // 定义一个无返回值类型的方法 { Console.WriteLine("库存商品名称: "); Console.WriteLine(FullName); // 输出属性值 } } class Program { static void Main(string[] args) { cStockInfo stockInfo = new cStockInfo(); // 创建cStockInfo对象 stockInfo.FullName = "笔记本电脑"; // 使用对象调用类成员属性 stockInfo.ShowGoods(); // 使用对象调用类成员方法 Console.ReadLine(); } }程序运行结果为:
库存商品名称:
笔记本电脑
C#对象的销毁
每个对象都有生命周期,当对象的生命周期结束时,分配给该对象的内存地址将会被回收。在其他语言中需要手动回收废弃的对象,但是 C# 拥有一套完整的垃圾回收机制,用户不必担心废弃的对象占用内存,垃圾回收器将回收无用的且占用内存的资源。在谈到垃圾回收机制之前,首先需要了解何种对象会被 .NET 垃圾回收器视为垃圾。主要包括以下两种情况:
1) 对象引用超过其作用范围,则这个对象将被视为垃圾,如下图所示:

图 1 对象超过作用范围将被销毁
2) 将对象赋值为 null,如下图所示:

图 2 对象被赋置为null时将被销毁
C#类与对象的关系
类是一种抽象的数据类型,但是其抽象的程度可能不同,而对象是一个类的实例,例如,将农民设计为一个类,张三和李四就可以各为一个对象。从这里可以看出,张三和李四有很多共同点,他们都在某个农村生活,早上都要出门务农,晚上都会回家。对于这样相似的对象,就可以将其抽象出一个数据类型,此处抽象为农民。这样,只要将农民这个类型编写好,程序中就可以方便地创建张三和李四这样的对象。若需要更改代码,则只对农民类型进行修改即可。
综上所述,可以看出类与对象的区别:类是具有相同或相似结构、操作和约束规则的对象组成的集合,而对象是某一类的具体化实例,每一个类都是具有某些共同特征的对象的抽象。