๐Ÿ—ฏ๏ธLanguage/C# ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ

ํ•ด๋‹น ๊ธ€ 31๊ฑด

*์ด ๊ธ€์€ ์ฑ…์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ณต๋ถ€ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. 1. ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ ์ˆจ๊ธฐ์ž! : new ํ‚ค์›Œ๋“œ ๋ถ€๋ชจ ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ์ƒ์† ๋ฐ›์€ ๋ฉค๋ฒ„์™€ ์ด๋ฆ„์€ ๋™์ผํ•˜์ง€๋งŒ ์™„์ „ํžˆ ๋‹ค๋ฅธ ์ƒˆ๋กœ์šด ๋ฉค๋ฒ„๋กœ ์žฌ์ •์˜ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” new ํ‚ค์›Œ๋“œ์˜ ์˜๋ฏธ์™€๋Š” ๋‹ค๋ฅด๋‹ค. ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•˜๋‹ค ๋ณด๋ฉด, ๋งŒ๋“ค๊ณ  ์žˆ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ๋‚˜์ค‘์— ์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ํ•  ์ง€ ์•ˆ ํ• ์ง€๋ฅผ ๋ฏธ๋ฆฌ ์ƒ๊ฐํ•œ๋‹ค๋Š” ๊ฑด ์‰ฌ์šด ๊ฒŒ ์•„๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, C#์—์„œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋ฅผ virtual์œผ๋กœ ์„ ์–ธํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๋Ÿฐ ๋ถ€๋ถ„๊นŒ์ง€ ์ „๋ถ€ ์„ค๊ณ„๋ฅผ ์‹ ๊ฒฝ์จ์„œ ์ž‘์„ฑํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๊ฒฝํ—˜์ด ๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์•„๋‹ˆ๋ฉด ์–ด๋ ค์šธ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ C#์—์„œ๋Š” ์šฐ๋ฆฌ ๊ฐ™์€ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด์„œ, ๋ฉ”์†Œ๋“œ ์ˆจ๊ธฐ๊ธฐ๋ฅผ ์ง€์›ํ•œ๋‹ค. class Monster { publ..

๐Ÿ—ฏ๏ธLanguage/C# 2022. 3. 21. 16:12

*์ด ๊ธ€์€ ์ฑ…์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ณต๋ถ€ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. C#์˜ ํด๋ž˜์Šค ๋ถ€๋ถ„์„ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ์–ด๋–ค ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด๋ฅผ ๋ฐฐ์šฐ๋“  ํด๋ž˜์Šค์™€ ์ƒ์„ฑ์ž๋ž€ ๊ฐœ๋…์ด ๋‚˜์™”๊ณ , ์ด๊ฒƒ์€ ์ต์ˆ™ํ•˜๊ฒŒ ์•Œ๊ณ  ์žˆ๋Š” ๋‚ด์šฉ์ด์—ˆ๋‹ค. ์ด๋ฒˆ์— ์ •๋ฆฌํ•  ๊ธ€์ธ ์–•์€ ๋ณต์‚ฌ์™€ ๊นŠ์€ ๋ณต์‚ฌ ๋˜ํ•œ ์ž˜ ์•Œ๊ณ  ์žˆ๋Š” ๋‚ด์šฉ์ด์—ˆ์ง€๋งŒ, ๋ณต์‚ฌ ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ผ์ด ๋‚˜์—๊ฒ ์ž˜ ์—†์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜์ค‘์— ๋ง‰ํž˜์—†์ด ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ ‡๊ฒŒ ๊ธ€์„ ํฌ์ŠคํŒ…ํ• ๊นŒ ํ•œ๋‹ค. ๊ทธ ์ „์— ์ฐธ๊ณ ๋กœ ์•Œ์•„๋‘๋ฉด ์ข‹์€ ์ง€์‹์„ ๋จผ์ € ๋ณด์ž. C#์—๋„ ์ข…๋ฃŒ์ž(์†Œ๋ฉธ์ž)๋Š” ์กด์žฌํ•œ๋‹ค. ๋‚˜๋Š” C#์— ์ƒ์„ฑ์ž๋งŒ ์กด์žฌํ•˜๊ณ  ์†Œ๋ฉธ์ž๋Š” ์—†๋Š” ์ค„ ์•Œ์•˜๋‹ค. ํ•˜์ง€๋งŒ ์กด์žฌํ–ˆ๋‹ค. class Monster { ~Monster() // ์†Œ๋ฉธ์ž { ... } } ์ƒ์„ฑ์ž์™€ ๋‹ค๋ฅด๊ฒŒ ์˜ค๋ฒ„๋กœ๋”ฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ , ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ๊นŒ์ง€ C++์˜ ์†Œ๋ฉธ์ž์™€ ์„ฑ์งˆ์ด ..

๐Ÿ—ฏ๏ธLanguage/C# 2022. 3. 18. 13:16

*์ด ๊ธ€์€ ์ฑ…์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ณต๋ถ€ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. C#์˜ ๋ฉ”์†Œ๋“œ ์˜ค๋ฒ„๋กœ๋”ฉ์€ ์˜ค๋กœ์ง€ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ˆ˜์™€ ํ˜•์‹๋งŒ์„ ๋ถ„์„(๋ฐ˜ํ™˜ ํ˜•์‹์€ ๋ณด์ง€ ์•Š์Œ)ํ•ด์„œ ์–ด๋–ค ๋ฒ„์ „์ด ํ˜ธ์ถœ๋  ์ง€๋ฅผ ์ปดํŒŒ์ผ ํƒ€์ž„์— ์ •ํ•œ๋‹ค๋Š” ๋‚ด์šฉ์„ ๋ณธ ํ›„์—, ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๊ด€๋ จ๋œ ๋‚ด์šฉ๋“ค์„ ๋ดค๋‹ค. ๊ฐ€๋ณ€ ๊ฐœ์ˆ˜์˜ ์ธ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜๊ฐ€ ์œ ์—ฐํ•˜๊ฒŒ ๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. ๊ฐ€๋ น, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ชจ๋“  ์ธ์ˆ˜์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” Sum() ๋ฉ”์†Œ๋“œ ๊ฐ™์€ ๊ฒƒ์„ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค. Sum(1, 2); Sum(1, 2, 3, 4, 5); Sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); ์œ„์™€ ๊ฐ™์€ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”์†Œ๋“œ ์˜ค๋ฒ„๋กœ๋”ฉ์„ ์ผ์ผํžˆ ๋‹ค ํ•˜๋Š” ๊ฒƒ์€ ํž˜๋“ค๋‹ค. ๊ทธ๋ž˜์„œ C#์—์„œ๋Š” params ํ‚ค์›Œ๋“œ์™€ ๋ฐฐ์—ด์„ ์ด์šฉํ•˜์—ฌ ๊ฐ€๋ณ€ ๊ฐœ์ˆ˜์˜ ์ธ์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด๋†จ๋‹ค. int..

๐Ÿ—ฏ๏ธLanguage/C# 2022. 3. 18. 01:25

*์ด ๊ธ€์€ ์ฑ…์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ณต๋ถ€ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. 1. ๊ฐ’์— ์˜ํ•œ ํ˜ธ์ถœ (Call by value) ํ•จ์ˆ˜์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ, ํ•„์š”ํ•œ ๊ฐ’๋“ค์„ ์ „๋‹ฌํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ๋งค๊ฐœ๋ณ€์ˆ˜์— ๊ฐ’์„ ๋„ฃ์–ด ์ „๋‹ฌํ•ด ์ค€๋‹ค. ๊ฐ’ ํ˜•์‹(Value type)์€ ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ ์‹œ์— ํ•ด๋‹น ์ธ์ž์˜ ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ์ „๋‹ฌ ํ•จ์ˆ˜์™€ ๋ฉ”์†Œ๋“œ์—์„œ ๊ฐ’์„ ๋ฆฌํ„ดํ•  ๋•Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€ ์ด๊ฒƒ์„ ๊ฐ’์— ์˜ํ•œ ํ˜ธ์ถœ(Call by value)์ด๋ผ๊ณ  ํ•จ ๋‘ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์•„์„œ ์„œ๋กœ ๊ฐ’์„ ๋ฐ”๊พธ๋Š” Swap() ํ•จ์ˆ˜์—์„œ ์ด๋Ÿฐ ์˜ˆ์‹œ๊ฐ€ ์ž์ฃผ ๋‚˜์˜จ๋‹ค. static void Swap(int x, int y) { int temp = x; x = y; y = temp; } ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ์„ ํ•ด ๋ณธ๋‹ค. static void Main(string[] args) { int x = 3; int ..

๐Ÿ—ฏ๏ธLanguage/C# 2022. 3. 18. 00:55