// 얕은 복사 : 특정 객체에 대한 레퍼런스만 만들어서 값을 변경 static void CopyRefClass(CC cc) { CC refCC = cc; refCC.a = 100; refCC.b = 10000; }
/* * * this : 객체 자신을 참조하는 키워드 * 사용처 : 함수의 파라미터 이름과 멤버 변수 이름이 동일, 클래스 내부에서 멤버변수를 접근 * */ static void Main(string[] args) { AA aa = new AA(10); aa.Print(); // static 멤버들은 객체 생성없이 접근이 가능하다. BB.a = 10; BB.b = 100; BB.Print(); CC cc = new CC(); cc.Print(); CopyRefClass(cc); cc.Print(); CC tempCC = CopyDeepClass(cc); tempCC.Print(); while (true) { } }
// 깊은 복사 : 특정 객체와 같은 객체를 복사, 기존에 존재하던 객체에는 영향 X static CC CopyDeepClass(CC cc) { CC tempCC = new CC(); tempCC.a = cc.a; tempCC.b = cc.b; return(tempCC); }