参考书目:C#6.0学习笔记——从第一行C#代码到第一个项目设计(作者周家安)P60
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Example3_2
{
public class Person //定义Person类
{
public string Name { get; set; } //
public int Age { get; set; } //年龄,使用了属性的快速定义方法
}
class Program
{
static void Main(string[] args)
{
Person ps1 = new Person { Name = "Time", Age = 22 };
Person ps2 = ps1;
Person ps3 = new Person { Name = "王五", Age = 45 };
//输出ps2的属性值
Console.WriteLine( "ps1被修改前:\nps2.Name:{0}\nps2.Age:{1}",ps2.Name, ps2.Age);
// Console.WriteLine("ps1被修改前:\nps2.Name : {0}\nps2.Age : {1}", ps2.Name, ps2.Age);
//修改ps1的属性值
ps1.Name = "Jack";
ps1.Age = 28;
//再次输出ps2的值
Console.WriteLine("ps1被修改后:\n ps2.Name:{0}\n ps2.Age:{1}",
ps2.Name, ps2.Age);
//输出王五的值
Console.WriteLine("ps3:\n ps3.Name:{0}\n ps3.Age:{1}",
ps3.Name, ps3.Age);
Console.ReadKey();
}
}
}
运行结果如下:
总结:类是引用类型,若创建对象时,采用对象赋值的方法,那么两个对象对应同一个实例。如代码中的ps1和ps2,改变一个对象的值,另一个对象的值随之改变。
结构体为值类型,采用对象赋值的方法,产生的新对象,是原对象的副本,是新开辟的存储区域。