05. this, this() ์ƒ์„ฑ์ž
ยท
๐Ÿ’ป Programming Language/C#
this ํ‚ค์›Œ๋“œ namespace ThisEx { class Student { private string name; private string grade; public void SetName(String name) { this.name = name; //name = name ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋งค๊ฐœ๋ณ€์ˆ˜ name์ธ์ง€ ํด๋ž˜์Šค๋‚ด name์ธ์ง€ ํŒ๋ณ„ํ•  ์ˆ˜ ์—†๋‹ค. // this.name ์€ student ํด๋ž˜์Šค ๋‚ด ์„ ์–ธ๋œ name } public string GetName() { return name; // ์ด ๊ฒฝ์šฐ student ๋‚ด์˜ name์ž„์€ ์ž๋ช…ํ•˜๋‹ค. } public void SetGrade(string grade) { this.grade = grade; } public string GetGrade() { re..
04. ๊นŠ์€ ๋ณต์‚ฌ์˜ ์ดํ•ด (Deep Copy)
ยท
๐Ÿ’ป Programming Language/C#
Value Type => Stack memory์— ์ €์žฅ Reference Type => Heap memory์— ์ €์žฅ [Ex.1 - Shallow Copy] Demo1 demo1 = new Demo1(); demo1.aa = 100; demo1.bb = 1000; //Shallow Copy Demo1 demo2 = demo1; demo2.bb = 1111; Console.WriteLine("{0} {1}", demo1.aa, demo1.bb); Console.WriteLine("{0} {1}", demo2.aa, demo2.bb); Output 100 1111 100 1111 demo1 ์€ aa ์™€ bb์˜ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , aa์™€ bb์˜ ๊ฐ’์€ heap ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜์–ด ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์œ„์™€ ๊ฐ™์€ ๋ณต์‚ฌ๋Š”..
03. static ํ•„๋“œ์™€ static ๋ฉ”์†Œ๋“œ
ยท
๐Ÿ’ป Programming Language/C#
static(์ •์ ) ๋ฉ”์†Œ๋“œ์™€ ์ •์  ํ•„๋“œ ํ•œ ํ”„๋กœ๊ทธ๋žจ์•ˆ์— ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜๋งŒ ์กด์žฌํ•˜์ง€๋งŒ ์ธ์Šคํ„ด์Šค๋Š” ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ์กด์žฌ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•œ ํ”„๋กœ๊ทธ๋žจ์•ˆ์— ๋˜‘๊ฐ™์€ ํด๋ž˜์Šค๋Š” ๋‘๊ฐœ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์—†๋‹ค. static ํ•„๋“œ๋‚˜ static ๋ฉ”์†Œ๋“œ๋Š” ํด๋ž˜์Šค์— ์†Œ์†๋œ ๊ฒƒ์ด๋ฏ€๋กœ ํ”„๋กœ๊ทธ๋žจ์•ˆ์— ์œ ์ผํ•˜๊ฒŒ ์กด์žฌํ•œ๋‹ค. ์ธ์Šคํ„ด์Šค์˜ ํ•„๋“œ๋‚˜ ๋ฉ”์†Œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•˜๋ฉด ๋˜๊ณ , static ํ•„๋“œ์™€ ๋ฉ”์†Œ๋“œ์˜ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ํด๋ž˜์Šค์˜ ์ด๋ฆ„์„ ํ†ตํ•ด ์ ‘๊ทผํ•˜๋ฉด ๋œ๋‹ค. using System; using System.Threading; class Global { public static int Count = 0; public static void ResetCount() { Count = 0; } } class A { public A() { Global.Coun..
02. ์ƒ์„ฑ์ž์™€ ์ข…๋ฃŒ์ž
ยท
๐Ÿ’ป Programming Language/C#
CLR(Common Language Runtime) => Garbage Collector ๋ฅผ ํฌํ•จ/ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์‹คํ–‰ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ. Garbage Collector => ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ๊ด€๋ฆฌ CLR์˜ Garbage Collector๊ฐ€ ๊ฐ์ฒด๊ฐ€ ์†Œ๋ฉธ๋˜๋Š” ์‹œ์ ์„ ํŒ๋‹จํ•ด์„œ ์ข…๋ฃŒ์ž๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. ์ข…๋ฃŒ์ž๋Š” ๋  ์ˆ˜ ์žˆ๋Š”ํ•œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๊ธฐ๋ณธ์ƒ์„ฑ์ž : ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†์ด ์‚ฌ์šฉํ•˜๋Š” ์ƒ์„ฑ์ž ์‚ฌ์šฉ์ž ์ง€์ • ์ƒ์„ฑ์ž : ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง€๋Š” ์ƒ์„ฑ์ž์ด๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ ๋ณ„๋„๋กœ ์„ ์–ธํ•ด์•ผํ•จ. ์ด๋•Œ ์‚ฌ์šฉ์ž ์ง€์ • ์ƒ์„ฑ์ž๋ฅผ ๋งŒ๋“ ๋‹ค๋ฉด ๊ธฐ๋ณธ์ƒ์„ฑ์ž๋Š” ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜์ง€ ์•Š์Œ. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž ์ง€์ • ์ƒ์„ฑ์ž๋ฅผ ์„ ์–ธํ•˜์˜€์„๋•Œ ๊ธฐ๋ณธ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋ณ„๋„๋กœ ์„ ์–ธํ•ด ์ฃผ์–ด์•ผํ•จ. ์ข…๋ฃŒ์ž : ํด๋ž˜์Šค์˜ ์ด๋ฆ„์— ~ ๋ฅผ ๋ถ™ํžŒ ํ˜•ํƒœ ์ƒ์„ฑ์ž์™€ ๋‹ฌ..
01. ํด๋ž˜์Šค์™€ ๊ฐ์ฒด
ยท
๐Ÿ’ป Programming Language/C#
ํด๋ž˜์Šค์™€ ๊ฐ์ฒด ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ(Object Oriented Programming => OOP) : ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์„ ๋ช…๋ น์–ด์˜ ๋ชฉ๋ก์œผ๋กœ ๋ณด๋Š” ์‹œ๊ฐ์—์„œ ๋ฒ—์–ด๋‚˜ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ๋œ ๋‹จ์œ„, ์ฆ‰ ๊ฐ์ฒด ๋“ค์˜ ๋ชจ์ž„์œผ๋กœ ํŒŒ์•…ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ๊ฐ์˜ ๊ฐ์ฒด๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ˆˆ์— ๋ณด์ด๋Š” ๋ชจ๋“  ๊ฒƒ๋“ค์€ ๊ฐ์ฒด์ด๊ณ  ํ”„๋กœ๊ทธ๋žจ์ƒ์—์„œ ๊ฐ์ฒด๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ์ฒด๋“ค์€ ๊ฐ๊ฐ ์ €๋งˆ๋‹ค์˜ ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด ์‚ฌ๋žŒ์„ ์˜ˆ๋กœ ๋“ค๋ฉด ์‚ฌ๋žŒ์˜ ์ด๋ฆ„, ์‚ฌ๋žŒ์˜ ๋‚˜์ด, ์„ฑ๋ณ„ ๋“ฑ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํŠน์„ฑ์„ ํ†ตํ•ด ์‚ฌ๋žŒ์ด๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ๋ฌ˜์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์„ฑ์„ ์†์„ฑ์ด๋ผ ํ•˜๊ณ , ๊ฐ์ฒด๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ํ˜น์€ ํ–‰๋™์„ ๋ฉ”์†Œ๋“œ๋ผ๊ณ  ํ‘œํ˜„ํ•œ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋“ฑ์žฅํ•˜๋Š” ์šฉ์–ด๋Š” class์ด๋‹ค. ํด๋ž˜์Šค์— ์‚ฌ๋žŒ์ด๋ผ๊ณ  ํ•˜๋Š”..