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

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

*์ด ๊ธ€์€ ์ฑ…์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ณต๋ถ€ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์กฐ๊ฑด๋ฌธ์€ ๋…ผ๋ฆฌ์ ์ธ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด๋‹ค. if, else if, else ๋ฌธ๊ณผ ํ•จ๊ป˜ switch ๋ฌธ์ด๋ผ๋Š” ๊ฒƒ๋„ ๋ฐฐ์šฐ๊ฒŒ ๋œ๋‹ค. switch ๋ฌธ์— ์‚ฌ์šฉ๋˜๋Š” ์กฐ๊ฑด์‹์€ ์ •์ˆ˜ ํ˜•์‹๊ณผ ๋ฌธ์ž์—ด ํ˜•์‹๋งŒ ์ง€์›์„ ํ•œ๋‹ค. C# 7.0๋ถ€ํ„ฐ๋Š” ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์กฐ๊ฑด์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๊ฒŒ ๋œ ๊ฒƒ ๊ฐ™๋‹ค. ๋ฐ์ดํ„ฐ ํ˜•์‹ ์‚ฌ์šฉ ์˜ˆ object obj = 123; // Boxing switch (obj) { case int i: // obj์— ๋‹ด๊ฒจ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ํ˜•์‹์— ๋”ฐ๋ผ case์ ˆ ๋ถ„๊ธฐ ... break; case float f: ... break; default: ... break; } ๋ฐ์ดํ„ฐ ํ˜•์‹์— ๋”ฐ๋ผ ๋ถ„๊ธฐํ•  ๋•Œ๋Š” case ์ ˆ์—์„œ ๋ฐ์ดํ„ฐ ํ˜•์‹ ์˜†์— ๋ฐ˜๋“œ์‹œ ์‹๋ณ„์ž๋ฅผ ๋ถ™์—ฌ์ค˜์•ผ ..

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

*์ด ๊ธ€์€ ์ฑ…์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ณต๋ถ€ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋‹ค ๋ณด๋ฉด, Null์ด๋ผ๋Š” ๊ฐ’์„ ํ•„์—ฐ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ๋•Œ๊ฐ€ ๋งŽ๋‹ค. Null ๊ฐ’์„ ํ• ๋‹นํ•˜๊ณ , ๊ทธ ๊ฐ’์„ ํ† ๋Œ€๋กœ ์–ด๋– ํ•œ ์—ฐ์‚ฐ์„ ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์˜ˆ์™ธ(NullReference)๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์ „ ๊ฒ€์‚ฌ๋ฅผ ๋จผ์ € ํ•ด์ค˜์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฒ€์‚ฌ๋ฅผ ๋จผ์ € ํ•ด์ฃผ๊ณค ํ–ˆ๋‹ค. void Function(Object obj) { if (obj != null) { ... } } ํ•˜์ง€๋งŒ, ์ด๋Ÿฐ ๊ฒ€์‚ฌ ๋ฐฉ์‹์€ ์กฐ๊ฑด๋ฌธ์ด ๋งŽ์•„์ง„๋‹ค๋ฉด ์ฝ๊ธฐ๊ฐ€ ๋ถˆํŽธํ•ด์ง€๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์—ˆ๋‹ค. ์ข€ ๋” ์ถ•์•ฝํ•ด์„œ ๊ฐ„ํŽธํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์„๊นŒ๋ž€ ์ƒ๊ฐ๊ณผ ํ•จ๊ป˜ C# ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด ๋” ์ฐพ์•„๋ดค๋‹ค. ๊ทธ๋ฆฌ๊ณ  C# 6.0๋ถ€ํ„ฐ ์œ„์—์„œ ๊ณ ๋ฏผํ–ˆ๋˜ ๊ธฐ๋Šฅ๋“ค์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค. 1. Null ์กฐ๊ฑด๋ถ€ ์—ฐ์‚ฐ์ž ?. ์—ฐ์‚ฐ์ž ๊ฐ์ฒด์˜..

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

*์ด ๊ธ€์€ ์ฑ…์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ณต๋ถ€ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ˆซ์ž๋งŒํผ ๋งŽ์ด ๋‹ค๋ฃจ๋Š” ๊ฒŒ ๋ฌธ์ž์—ด์ด๋ผ๊ณ  ํ–ˆ๋‹ค. ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃจ๋‹ค ๋ณด๋ฉด, ์„œ์‹์„ ๊ฐ–์ถœ ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ๊ฐ€ ์žˆ๋‹ค. Publisher Author Title Marvel Stan Lee Iron Man Hanbit Sanghyun Park This is C# Prentice Hall K&R The C Programming Language ์œ ์šฉํ•˜๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” C#์˜ ๋ฌธ์ž์—ด ์„œ์‹ ๊ด€๋ จ ๊ธฐ๋Šฅ๋“ค์„ ๊ณต๋ถ€ํ•ด๋ดค๋‹ค. 1. string.Format( ) Format( ) ๋ฉ”์†Œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. {์ฒจ์ž, ๋งž์ถค:์„œ์‹ ๋ฌธ์ž์—ด} ์ฒจ์ž๋Š” ๋ฌธ์ž์—ด์˜ ํ‹€์„ ๋งํ•œ๋‹ค. ์‚ฌ์šฉ ์˜ˆ์‹œ๋ฅผ ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. *WriteLine ํ•จ์ˆ˜๋„ string.format()์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.) Co..

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

C#์—์„œ ๊ฐ’ ํ˜•์‹(value type)์— ํ•ด๋‹นํ•˜๋Š” ์ž๋ฃŒํ˜•๋“ค์ด ์žˆ๋‹ค. (byte, int, float, ...) ์ด๋Ÿฐ ๊ฐ’ ํ˜•์‹์˜ ๋ณ€์ˆ˜๋“ค์€ ์ดˆ๊ธฐํ™”ํ•ด์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด C# ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ปดํŒŒ์ผ์กฐ์ฐจ ํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ, ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ์ด๋Ÿฐ ๊ฐ’ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ์—๋„ ์–ด๋– ํ•œ ๊ฐ’๋„ ๊ฐ€์ง€์ง€ ์•Š๊ฒŒ ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ๋‹ค. ์ฐธ์กฐ ํ˜•์‹(reference type)์€ null์„ ์ค„ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐ’ ํ˜•์‹์—๋Š” null์„ ์ค„ ์ˆ˜๊ฐ€ ์—†๋‹ค. ๊ทธ๋ž˜์„œ, C#์—์„œ๋Š” ์ด๋Ÿฐ ๊ฐ’ ํ˜•์‹ ์ž๋ฃŒํ˜• ๋ณ€์ˆ˜์—๋„ null ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋„๋ก Nullable ํ˜•์‹์ด๋ž€ ๊ฑธ ์ง€์›ํ•œ๋‹ค. Nullable ๊ฐ’ ํ˜•์‹์— ํ•œํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์„ ์–ธํ•˜๋Š” ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋ฐ์ดํ„ฐํƒ€์ž…? ๋ณ€์ˆ˜์ด๋ฆ„; ์‚ฌ์šฉ ์˜ˆ์‹œ๋ฅผ ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์“ธ ์ˆ˜ ์žˆ๋‹ค. // int da..

๐Ÿ—ฏ๏ธLanguage/C# 2022. 3. 9. 15:31

*์ด ๊ธ€์€ ์ฑ…์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ณต๋ถ€ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ(Native Code)์™€ C#์˜ CLR ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋Š” CPU์™€ ์šด์˜์ฒด์ œ๊ฐ€ ์ง์ ‘์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋“ค์„ ๋งํ•œ๋‹ค. ๋ณดํ†ต ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋“ค์€ ์ปดํŒŒ์ผ(Compile) ๊ณผ์ •์„ ๊ฑฐ์ณ, ์šด์˜์ฒด์ œ๊ฐ€ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญ๋œ๋‹ค. ํ•˜์ง€๋งŒ, ์ด๋Ÿฐ ๋ฐฉ์‹์€ OS ๋ฐ HW ํ™˜๊ฒฝ์ด ๋‹ฌ๋ผ์ง€๋ฉด ์‹คํ–‰์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ์˜ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ์ž๋ฐ”์—์„œ๋Š” JVM, C#์—์„œ๋Š” CLR๊ณผ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ์„ ๋„์ž…ํ–ˆ๋‹ค. C# ๊ธ€์ด๋‹ˆ CLR์— ๋Œ€ํ•ด์„œ๋งŒ ์•Œ์•„๋ณด์ž๋ฉด, CLR์€ .NET ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ•จ๊ป˜ OS ์œ„์— ์„ค์น˜๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  C# ์ปดํŒŒ์ผ๋Ÿฌ๋Š” C# ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜์—ฌ, IL(Intermediate Language)๋ผ๋Š” ์ค‘๊ฐ„ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์‹คํ–‰ ํŒŒ..

๐Ÿ—ฏ๏ธLanguage/C# 2022. 3. 9. 14:50