๋ฉฐ์น  ์ „์— ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋„์™€์ฃผ๋‹ค๊ฐ€ ์•Œ์•˜๋Š”๋ฐ ๋‚ด๊ฐ€ C#์œผ๋กœ๋Š” ๋ˆ„๊ตด ๋„์™€์ค„ ๋งŒํ•œ ์‹ค๋ ฅ์ด ์•ˆ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์†์„ ๋—€์ง€๋„ ๋ฒŒ์จ ๋ช‡๊ฐœ์›” ์งธ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์€ ๋‚ด์šฉ์„ ์žŠ์–ด๋ฒ„๋ ธ๋‹ค. ๊ทธ ๋™์•ˆ ๋„ˆ๋ฌด Lua์— ์ •์‹ ์ด ํŒ”๋ ค ์žˆ์—ˆ์–ด.


๋•๋ถ„์— ๋‹ค์‹œ ๋ณต์Šต์„ ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์–ด. ์ข‹์€ ์ƒ๊ฐ์ด๋‹ค. ๋‚˜๋Š” ์–ธ์ œ๋‚˜ ์ƒ๊ฐํ•˜์ง€๋งŒ ๊ณต๋ถ€๋ผ๋Š” ๊ฒƒ์€ ์ฑ…์„ ์ฑ…์ƒ ์˜†์— ๋‘๊ณ  ๋ƒ…๋‘๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ํŽผ์ณ์„œ ๋ณด๋Š”๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ์—, ๊ทธ๊ฒŒ ์ž˜ ์•ˆ๋  ๋ฟ์ด์ง€๋งŒ.


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


์—ฌ๊ธฐ์„œ ๋Š์œผ๋ฉด ๊ทธ๋ƒฅ ์˜์‹์˜ ํ๋ฆ„๋Œ€๋กœ ์“ด ๋ป˜๊ธ€์ด ๋˜๊ณ  ์ผ์ƒ๊ธ€์„ ์“ฐ๋Š” ๊ฒƒ์€ ๊ฐค ๋ถ„์œ„๊ธฐ๋ž‘ ์•ˆ ๋งž์œผ๋‹ˆ๊นŒ C# ์ •๋ณด๋ฅผ ๋ช‡ ๊ฐ€์ง€ ๊ณต์œ ํ•˜๊ณ  ๊ฐ„๋‹ค.

1. ํƒ€์ž…์„ ๋ช…์‹œํ–ˆ์„ ๊ฒฝ์šฐ, ์ƒ์„ฑ์ž๋ฅผ new();๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

2. ๋ฌธ์ž์—ด ์•ˆ์— ๊ฐ’์„ ๋„ฃ์–ด์•ผ ํ•  ๋•Œ๋Š” ToString() ํ•ด์„œ ํ•ฉ์น˜์ง€ ๋ง๊ณ  ๋ฌธ์ž์—ด ๋ณด๊ฐ„(string interpolation)์„ ์‚ฌ์šฉํ•˜์ž.

3. using ๋ฌธ์œผ๋กœ ์ž๋™ ์ž์› ์ •๋ฆฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

4. null ๊ฒ€์‚ฌ์— ์‹คํŒจํ–ˆ์„ ๋•Œ ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ฒŒ ํ•˜๋ ค๋ฉด _ = arg ?? throw new ...;๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. (discards standalone)

5. ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๋ช…๋ช…๋œ ์ธ์ˆ˜(named argument)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๋ฉ”์„œ๋“œ ์ด๋ฆ„์„ ๊ฐœํŒ์œผ๋กœ ์ง€์œผ๋ฉด ๋‚˜์ค‘์— ๋ช…๋ช…๋œ ์ธ์ˆ˜๋„ ๊ฐœํŒ์ด ๋‚  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.