7-9.cs
来自「这是学习java基础的好的源代码的学习资料」· CS 代码 · 共 44 行
CS
44 行
//程序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 + =
减小字号Ctrl + -
显示快捷键?