📄 7-9.cs
字号:
//程序7-9
using System;
class Reftest { public int testInt; }
class Student
{
public int studID;
public string studName; // string特殊引用对象,浅复制的行为等同于值类型
public Reftest Ref1; // 引用类型
}
class CollegeStudent: Student
{
public int DepartmentID;
// 在派生类中定义一个方法,实现浅复制
public CollegeStudent ShallowCopy()
{ return (CollegeStudent)MemberwiseClone();
}
}
public class Test
{
public static void Main()
{ CollegeStudent S1 = new CollegeStudent();
S1.studID = 2003179;
S1.studName = "Sam";
S1.DepartmentID=001;
S1.Ref1 = new Reftest();
S1.Ref1.testInt = 444;
CollegeStudent S2 = S1.ShallowCopy();
Console.WriteLine(S1.studID+" "+S1.studName+" "+S1.Ref1.testInt);
Console.WriteLine(S2.studID+" "+S2.studName+" "+S2.Ref1.testInt);
Console.WriteLine("============");
S1.studID = 2003; // 不会改变S2.studID的值
S1.studName = "hi hi"; // string特殊引用对象,不会改变S2.studName的值
S1.Ref1.testInt = 333; // 将同时改变S2.Ref1.testInt的值,因为通过浅复制,S1.Ref1和S2.Ref1引用相同
Console.WriteLine(S1.studID+" "+S1.studName+" "+S1.Ref1.testInt);
Console.WriteLine(S2.studID+" "+S2.studName+" "+S2.Ref1.testInt);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -