์•ˆ๋…•ํ•˜์„ธ์š”.


์ด๋ฒˆ์— ๋“œ๋””์–ด... ์กฐ๊ฑด๋ถ„๊ธฐ๋ฅผ ์™„์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค!

์ฝ”๋“œ ๋ถ€๋ถ„์— ์†์„ ๋งŽ์ด ๋Œ„์ง€๋ผ ๋‚ด์šฉ์ด ๋งŽ์ด ๋ถ€์‹คํ•  ์ˆ˜๋„ ์žˆ์„ ๋“ฏ ํ•˜๋„ค์š”.


ํ ...


-----


๋‚™์„œ


ํ˜„์žฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ชฝ ์ž‘์—…์˜ ์ง„๋„๊ฐ€ ๊ฝค ์ž˜ ํ’€๋ฆฌ๋Š” ์ƒํƒœ๋ผ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ž‘์—…์ด ๋Šฆ์–ด์ง€๋Š” ๋А๋‚Œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์˜ค๋Š˜ ์กฐ๊ฑด ๋ถ„๊ธฐ ์ด๋ฒคํŠธ๋ฅผ ์™„์„ฑํ–ˆ์ฃ .

์•„๋ฌดํŠผ ์ž‘์—…์€ ๊ณ„์† ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.



๋‚™์„œ๋กœ๋Š” ํ˜ธ๋ฃจ์—๊ฒŒ ๋ฐ”์ง€๋ฅผ ์ž…ํž๊นŒ? ๊ณ ๋ฏผ์„ ํ•˜๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทผ๋ฐ ์ฃผ๋ณ€์˜ ํ”ผ๋“œ๋ฐฑ์œผ๋กœ๋Š” '์ž…ํž ํ•„์š”๊ฐ€ ์žˆ๋ƒ'๊ณ  ํ•˜๋”๋ผ๊ณ ์š”.



๊ทธ๋ฆฌ๊ณ  ์ด์ „์— ํฌ์ด๊ฐ€ ๊ทธ๋žฌ๋˜ ๊ฒƒ ์ฒ˜๋Ÿผ, ํ˜ธ๋ฃจ๋„ ์—ญ๋™์ ์ธ ์ž์„ธ๋กœ ๋‚™์„œ๋ฅผ ํ•ด๋ดค์Šต๋‹ˆ๋‹ค.



๊ทธ๋ฆฌ๊ณ ... ์ด๊ฒŒ ๋‚˜์˜ฌ ์ง€๋Š” ๊ฒฐ์ •ํ•˜์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค๋งŒ, ์ฃผ์ธ๊ณต ์˜†์—์„œ ๋ถ™์–ด๋‹ค๋‹ ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ทธ๋ ธ์Šต๋‹ˆ๋‹ค.

ํ , ์ œ๊ฐ€ ๊ทธ๋ ค๋†“๊ณ  ๋ญ”์ง€ ๋ชจ๋ฅด๊ฒ ๋„ค์š”.



๊ทธ๋ฆฌ๊ณ  ๋‚™์„œ



-----


์ด๋ฒคํŠธ์˜ ์กฐ๊ฑด ๋ถ„๊ธฐ์™€ ํ”Œ๋ž˜๊ทธ


์กฐ๊ฑด ๋ถ„๊ธฐ๋Š”, ์กฐ๊ฑด์ด ์ผ์น˜ํ•˜๊ฑฐ๋‚˜ ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ, ์ด๋ฒคํŠธ์˜ ํ๋ฆ„์„ ๊ฒฐ์ •ํ•˜๋Š” ํŠน์ˆ˜ํ•œ ์ด๋ฒคํŠธ์ž…๋‹ˆ๋‹ค.

์ผ๋‹จ ์—ฌ๊ธฐ๊นŒ์ง€๋Š” ์ด๋ฒคํŠธ ํŽธ์ง‘๊ธฐ์˜ ๊ฐ’์˜ ์ˆ˜์ •์‚ฌํ•ญ์„ ํฌํ•จํ•œ ๋ ˆ์ด์•„์›ƒ์„ ๋จผ์ € ์™„์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.



์›๋ž˜๋Š” ๋ถ„๊ธฐ๋ฅผ ์ด๋ฒคํŠธ์˜ ํฐ ๋‹จ์œ„์ธ EventData๋กœ ํ•  ์ƒ๊ฐ์ด์˜€์ง€๋งŒ, ์œ ์—ฐ์„ฑ์„ ๊ณ ๋ คํ•ด์„œ C์–ธ์–ด์˜ goto์™€ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•  ํ”Œ๋ž˜๊ทธ ํฌ์ธํŠธ๋ฅผ ๋งŒ๋“ค๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ”Œ๋ž˜๊ทธ ํฌ์ธํŠธ๋ฅผ ๋งŒ๋“ค ๊ฐ€๋Šฅ์„ฑ์„ ๋ณธ ์ด์œ ๋Š”, ๊ทธ์ € ํ˜„์žฌ ์‹คํ–‰๋˜๋Š” ์ด๋ฒคํŠธ ๋ชฉ๋ก์˜ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ”๊พธ๊ธฐ๋งŒ ํ•ด๋„ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.



ํ”Œ๋ž˜๊ทธ ํฌ์ธํŠธ๋Š” ์œ„์น˜ ์ง€์ •ํ•˜๋Š” ๊ฒƒ ์™ธ์—๋Š” ๋ณ„ ๋‹ค๋ฅธ ํ–‰๋™์„ ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฆ„ ์ •ํ•˜๋Š” ๊ฒƒ ์™ธ์—๋Š” ๋น„ํ™œ์„ฑํ™” ํ•˜๋Š” ์‹์œผ๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.



๊ทธ๋ฆฌ๊ณ , ์กฐ๊ฑด ๋ถ„๊ธฐ์—์„œ๋Š” ํƒ€์ž…์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ๋น„๊ต๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ๋” ๋งŒ๋“ค๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€๋ น 12 >= "5.4"์™€ ๊ฐ™์€ ๊ฒƒ์ด true๋กœ ๋‚˜์˜จ๋‹ค๋˜์ง€ ๋ง์ด์ฃ .

๊ทผ๋ฐ ๋ณดํ†ต์€ ๋ฌธ์ž์—ด์„ ์ˆซ์ž์™€ ๋น„๊ตํ•  ์ผ์€ ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ฐ™์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜์ง€๋งŒ...




C#์˜ .Net Core๋ถ€ํ„ฐ ์˜คํ”ˆ์†Œ์Šค๋กœ ๋ฐ”๋€ ์ดํ›„๋กœ ์›น์—์„œ ๊ณต์‹ IDE๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉด์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์‹คํ—˜์„ ์—ฌ๊ธฐ์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

C# 7.0๋ถ€ํ„ฐ ์ง€์›์ธ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์›น์—์„œ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋‹ˆ, ์ž์œ ๋กญ๊ฒŒ ์‹œํ—˜ํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹๋„ค์š”.


[.NET In-Browser Tutorial]ย https://www.microsoft.com/net/learn/in-browser-tutorial


์šฐ์„  ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

groupIndex๋Š”, ์ด์ „์— ๋งŒ๋“ค์—ˆ๋˜ ๋ณ€์ˆ˜ ๋ชฉ๋ก์—์„œ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•œ ๋ณ€์ˆ˜ ๊ทธ๋ฃน์˜ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฃน ๋ฒˆํ˜ธ๊ฐ€ -1์ผ ๋•Œ์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ง€์ •ํ•œ ๊ฐ’์œผ๋กœ ํŒ๋‹จํ•˜๊ณ , ๊ทธ ๊ฐ’์„ ํƒ€์ž… ์ƒ๊ด€์—†์ด object๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.


object๋ฅผ ์“ฐ๊ธฐ๋กœ ํ•œ ์ด์œ ๋Š”, ToString์ด ๊ฐ ํƒ€์ž…์˜ ๋‚ด์šฉ๋Œ€๋กœ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด์˜€์Šต๋‹ˆ๋‹ค.



๊ทธ๋ฆฌ๊ณ  ์—ฐ์‚ฐ์ž๋ฅผ ์˜ค๋ฒ„๋กœ๋”ฉํ•˜๊ณ , ๊ทธ ์•ˆ์— ๊ฐ ํƒ€์ž…์— ๋งž๊ฒŒ ๋น„๊ต๋ฅผ ํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

IsAssignableFrom์„ ์ด์šฉํ•ด ํƒ€์ž…์ด ์„œ๋กœ ๊ฐ™์€์ง€ ๋จผ์ € ๋น„๊ตํ•˜๊ธฐ๋กœ ํ•˜๊ณ , ํƒ€์ž…์ด ์„œ๋กœ ํ‹€๋ฆฌ๋ฉด ์–ด๋–ค ๊ฒƒ์ด๋“  ์ƒ๊ด€์—†์ด ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พผ ๋’ค ํ™œ์šฉํ•ด์„œ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.


์•„๋ž˜์˜ ์—ฐ์‚ฐ์ž๋Š” ํฌ๊ธฐ ๋น„๊ต๋ฅผ ํ•˜๋Š” ์—ฐ์‚ฐ์ž์ž…๋‹ˆ๋‹ค.

>= ์—ฐ์‚ฐ์ž์™€ <= ์—ฐ์‚ฐ์ž์˜ ์ฒ˜๋ฆฌ๋Š” ๊ฐ > ์—ฐ์‚ฐ์ž, < ์—ฐ์‚ฐ์ž์˜ ๋ถ€์ •(!)์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ, ๋ญ”๊ฐ€ ๋ฐ”๋ณด๊ฐ€ ๋œ ๊ฒƒ ๊ฐ™์€ ๊ธฐ๋ถ„์ด๋„ค์š”ใ…‹ใ…‹



ํ•˜์ง€๋งŒ, object๋กœ ์บ์ŠคํŒ… ํ•œ ๊ฐœ์ฒด์˜ ToString์„ ํ˜ธ์ถœํ•˜๋ฉด, ํ•ด๋‹น ํƒ€์ž…์˜ ToString์„ ํ˜ธ์ถœํ•˜๊ธธ๋ž˜ ์„œ๋กœ ํƒ€์ž…์ด ๊ฐ™์œผ๋ฉด object๋ผ๋ฆฌ ๋ฐ”๋กœ ๋น„๊ตํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค๋งŒ, ์˜ˆ์ƒ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ object์˜ ์—ฐ์‚ฐ์ž๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๋์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ ํƒ€์ž…์„ ์œ ์ถ”ํ•˜๊ณ  ๋‘˜ ๋‹ค ๊ทธ ํƒ€์ž…์œผ๋กœ ์บ์ŠคํŒ… ํ•œ ๋‹ค์Œ ๋น„๊ตํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.


๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ, ํ”Œ๋ž˜๊ทธ ํฌ์ธํŠธ์—๊ฒŒ๋Š” ์ž์‹ ์˜ ์œ„์น˜๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ, ์œ„์น˜(index)๋ฅผ ๊ธฐ๋กํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์งฐ์Šต๋‹ˆ๋‹ค.

์•„์‰ฝ๊ฒŒ๋„, ์œ ๋‹ˆํ‹ฐ๋Š” C# ๋ชจ๋ธ์ด 6.0๊นŒ์ง€๋งŒ ์ง€์›ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— C# 7.0์˜ ํŒจํ„ด ์ผ์น˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ๊ฒŒ ์•„์‰ฝ๋„ค์š”...




[ํŒจํ„ด ์ผ์น˜ - C# ๊ฐ€์ด๋“œ] https://docs.microsoft.com/ko-kr/dotnet/csharp/pattern-matching


ํŒจํ„ด ์ผ์น˜๋ฅผ ์ด์šฉํ•˜๋ฉด, ํƒ€์ž… ์œ ์ถ”๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์ด ๊ต‰์žฅํžˆ ๊ฐ„๋‹จํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ์ธ์ ์œผ๋กœ๋Š” ๋นจ๋ฆฌ ์œ ๋‹ˆํ‹ฐ์— ์ด๊ฑธ ์“ธ ์ˆ˜ ์žˆ๋Š” ๋‚ ์ด ์™”์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ญ๋‹ˆ๋‹ค.


์•„๋ฌดํŠผ, ์ด๋Ÿฐ ์ €๋Ÿฐ ๊ณ ์ƒ ๋์— ์กฐ๊ฑด ๋ถ„๊ธฐ์™€ ํ”Œ๋ž˜๊ทธ ํฌ์ธํŠธ๋ฅผ ์™„์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค!

ํ”Œ๋ž˜๊ทธ ํฌ์ธํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋„์ค‘์— ํ”Œ๋ž˜๊ทธ๋กœ ์ด๋™ํ•˜๊ฒŒ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ๊ณง๋ฐ”๋กœ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.




-----


๋ณด์—ฌ์ค„ ๊ฒŒ ๋„ˆ๋ฌด ์ ๋„ค์š”!



๊ต‰์žฅํžˆ ๋งŽ์€ ์ž‘์—…์„ ์ฝ”๋“œ์— ์Ÿ์•„๋ถ€์—ˆ์ง€๋งŒ, ์ฝ”๋“œ ์ž‘์—…์ด ๋ญ ๊ทธ๋ ‡๋‹ค์‹œํ”ผ ๋ณด์—ฌ์ค„ ๊ฒŒ ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ๋งŒ ๋ณด์—ฌ์ค„ ๋ฟ...


์ด์ œ ๋‹ค์Œ์—๋Š” ์ด๋ฒคํŠธ์—์„œ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ ๊นŒ์ง€ ๋งˆ์น˜๋ฉด ๊ฒŒ์ž„์˜ ํ๋ฆ„์„ ์™„์ „ํžˆ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋  ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ๊นŒ์ง€ ๋งŒ๋“ค๊ณ  ๋‚˜๋ฉด, ํ”Œ๋ ˆ์ด์–ด ์บ๋ฆญํ„ฐ(ํฌ์ด) ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.



๊ทธ๋Ÿผ ๋‹ค์Œ ์ฃผ์— ๊ณ„์†...