์ ๋ํฐ ์ฐ๊ณ ์์.
์ง๊ธ๊น์ง ๊ตฌ์กฐ์ฒด๋ฅผ ๋ฐฐ์ด๋ก ๋ง๋ค์ด์ ๋ช ๋ฒ ์ผ๋๋ฐ,
ํ๋ฒ์ ๊ตฌ์กฐ์ฒด๋ด์ ๋ณ์ ํ๋๋ฅผ ๋ ๋ฐฐ์ด๋ก ๋ง๋ค์ด๋ณด๋, ์๋ ์ด๊ธฐํ๋ฅผ ๋ชป ํ๋๋๊ฑฐ ๊ฐ๋๋ผ๊ณ .
์ด๊ฒ ์ด๊ธฐํ ๋ฌธ์ ์ธ๊ฑด์ง ์๋๋ฉด ๋ฐฐ์ด ์์ ๋ฐฐ์ด์ ๋ ๋ชป ์ฐ๊ฒ ํด๋๊ฑด์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ด์งธ๋ ์ ๋จ.
๊ฒ์์ ํ๋ค๋ณด๋ ๋ฆฌ์คํธ๋ผ๋๊ฒ ๋ฐฐ์ด๊ณผ ๋น์ทํ๊ฒ ์ธ ์ ์๋ค๋๊ฑฐ ๊ฐ๋๋ฐ,
1) ๊ตฌ์กฐ์ฒด๋ฅผ ๋ฆฌ์คํธ๋ก ๋ง๋ค๊ณ , ๋ด๋ถ ๋ณ์๋ฅผ ๋ฆฌ์คํธ๋ก ์ฌ์ฉ
2) ๊ตฌ์กฐ์ฒด๋ฅผ ๋ฆฌ์คํธ๋ก ๋ง๋ค๊ณ , ๋ด๋ถ ๋ณ์๋ฅผ ๋ฐฐ์ด๋ก ์ฌ์ฉ.
3) ๊ตฌ์กฐ์ฒด๋ฅผ ๋ฐฐ์ด๋ก ๋ง๋ค๊ณ , ๋ด๋ถ ๋ณ์๋ฅผ ๋ฆฌ์คํธ๋ก ์ฌ์ฉ.
4) ๊ตฌ์กฐ์ฒด๋ฅผ ๋ฐฐ์ด๋ก ๋ง๋ค๊ณ , ๋ด๋ถ ๋ณ์๋ฅผ ๋ฐฐ์ด๋ก ์ฌ์ฉ.
์ต์ ์ด ์ด๋ ๊ฒ 4๊ฐ๊ฐ ์๋๋ฐ,
์ด ์ค์ 4๋ฒ์ ์ ๋๋๊ฑฐ ํ์ธํ๊ณ ,
1~3 ์ค์ ๋๋๊ฒ ์์๊น?
์ง๋ฌธ์์ค ์ฒ์ฐธํ๋ค ์ง์งํ๊ฒ ๋๊ตญ์ด5๋ฑ๊ธ๋์๋ ๋ฏ
์ด๋ฐ ์๋ผ ๊ผฌ์ด๋ฉด ์ง์งํ๊ฒ ์ง์ญํํด๋ ํฉ๋ฒ์ธ๋ฏใ ใ
๋๋๋น์ทํ์์ค๊ฐ๋ค ๋ต๋ณ๋ฌ์๋ณด๋๊ฐ
๋๊ฐ ๊ตญ์ด 5๋ฑ๊ธ๋ ์๋ ๋ฏ ์ด ์ ๋ ๊ธ๋ ์ดํด๋ฅผ ๋ชปํ๋๊ฑฐ ๋ณด๋ฉด
ํ๋ค๋ชปํด ์ ๋ํฐ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋ฌผ์ด๋ด๋ ๋์ฒ๋ผ ๋งํ๋ ์๋ผ๋ ์กฐ์ ์กฑ ์๋ฆฌ ๋ฃ๋๋ค ใ ใ
๊ทผ๋ฐ ์ง๋ฌธ์ด ์ดํด๊ฐ ์ ๋จ? ๋ค์ ์ฒ์ฒํ ์ฝ์ด๋ดค๋๋ฐ ใ ๊ทธ ์ ๋๋ ์๋๊ฑฐ ๊ฐ์๋ฐ ใ ์ฉ์ด๋ฅผ ๋ด๊ฐ ์๋ชป ์๊ณ ์๋๊ฒ ์๋?
์ด๋ฉ๋์ด๊ฑฐ๋ณด๋จ์ง๋ฌธ์ํ ๋ฏ ์ง์ง
์ด ์๋ผ ์ํฉ ์ค๋ช ํด์ค. ใ ์ ๋ชฉ๋ณด๊ณ "๊ตฌ์กฐ์ฒด, ๋ฐฐ์ด, ๋ฆฌ์คํธ๋ฅผ ๋ชจ๋ฅด๋ ใ ๋ ์๋ค. ๋ ๋ค ์๋๋ฐ~ ๊ฐ์ ์กด๋ ์๋์ฒํด์ผ์ง~" ํ๊ณ ๋ค์ด์์ ๋ณด๋ ์๊ธฐ๊ฐ ๋ชจ๋ฅด๋ ๋ด์ฉ์. '๋ด๊ฐ ๊ตฌ์กฐ์ฒด, ๋ฐฐ์ด, ๋ฆฌ์คํธ์ ๋ํด์ ๋ชจ๋ฅด๋๊ฒ ์์ํ ๋ฐ!! ์ด๊ฑด ๊ธ์ ์กด๋ ๋ชป ์ด๊ฑฐ์ผ!! ๋นผ์ก!!'
๊ทธ๋ฅ ์์ฑ์์์ ์ด๊ธฐํ๋ฅผ ํ๋ฉด ๋ค ๋จ
๋กํ~ ์์ฑ์๊ฐ ๋ญ์ง ใ ์ด๋ป๊ฒ ์ฐ๋์ง๋ ํ๋ฒ ๊ณต๋ถํด๋ณผ๊ป. ใ
int[10] a = new int[10]; ์ด๋ฐ์์ผ๋ก
๋ค ๋ ๊ฒ ๊ฐ์๋ฐ
๋ฐฐ์ด๋ก ๊ผฌ์ผ๋ ๋ง์ผ๋ฉด ๊ฑ ์ ์ญ๋ณ์๋ก ๋ง๋ค์ด๋๊ณ ์ธ๋๋ง๋ค ์ด๊ธฐํํ๋ฉด ๋๋๋ฐ ํนํ ๋ฆฌ์คํธ๋ ๋ก์ปฌ๋ณ์๋ก ๋งค๋ฒ ์ง์ ํด์์ฐ๋ฉด ๋ฅ๋ฅ ๋จ์ด์ง๋คํ๋ ์ธ๊ฑฐ๋ฉด ์ ์ญ๋ณ์๋ก ์ง์ ํด๋ฐ 2๋ฒ์ ๋ ๊ฑธ ๊ทธ๋ฆฌ๊ณ
class๋ structure ์ฐจ์ด๊ฐ ๋ญ์ง ์? class๋ ๊ฐ์ฒด ์์ฒด๋ฅผ ์์ฑํ๋ค. ์ฆ CallByReference๊ฐ ๊ฐ๋ฅํจ. structure๋ ๋ฐ์ดํฐ ํ์ ๊ณผ ๊ฐ์ ์ถ์. ์ฆ CallByValue์ ๊ฐ๊น์. ๋ง์ฝ, ๋๊ฐ struct์์ ์๋ ๊ฐ์ ์์ ํ๋ ค๋ฉด, ํด๋น ๊ตฌ์กฐ์ฒด ์ ์ฒด๋ฅผ ๋ณต์ฌํ๊ณ , ์ํ๋ ๋ถ๋ถ์ ์์ ํ์ฌ ์๋ก์ด ๊ตฌ์กฐ์ฒด๋ฅผ ์ง์ ๋ฐํํด์ผํจ., ์๋ง struct๋ง class๋ก ๋ฐ๊พธ๋ฉด ๋๊ฐ ์ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์์. ๋๊ฐ ์๋ ๋ฐฐ์ด๊ณผ ์คํธ๋ญํธ ์์ฒด๋ ํ๋ฅญํ ๊ธฐ๋ฅ์ด์ง๋ง, ๋ด๊ฐ ๊ฐ์ธ์ ์ผ๋ก ๋๋ผ๊ธฐ์๋
struct << class array << list ์. struct๋ callbyvalue, class๋ callbyreference๋ผ๋ ์ ์ ๋ช ์ํด. array๋ list๋ณด๋ค ํ์ ์ ์ธ ์ฌ์ด์ฆ์ ์ ์ฉํ์ง๋ง, .list๋ ํ์ฅ์ฑ์ด ๋ ์ข์. ๋๊ฐ ๊ฒ์์ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด, class, struct, array, list, dictionary ์ ๋๋ ์ผ์ฃผ์ผ ํฌ์ํด์ ์ง์ ์์ผ๋ก ๋ง์ ธ๊ฐ๋ฉฐ ๊ณต๋ถํ๊ธธ ์ถ์ฒํ ๊ฒ, ํ๋ฉด์ class์ struct์ ์ฐจ์ด, array, list, dictionary add, remove, find, sorting ์ ๋๋ ๊ณต๋ถํ๋ฉด ๋ ์ข๊ณ ,
c# ์์ "struct ๋ call by value, class ๋ call by ref" ๋ก ๋๋์ง ์์์
class... ์ฑ ๋ณด๋ฉฐ ๊ฐ๋ ์ ์ผ๋ก๋ง ๊ทธ๋ฐ๊ฑฐ๊ตฌ๋ ํ๊ณ ๋์ด๊ฐ๊ณ , ์ค์ ๋ก ์จ๋ณธ์ ์ ์์. ใ ๊ทธ ๋์ ์๋๊ฒ๋ง ๋๋ ค๊ฐ๋ฉฐ ์ฐ๋ค๋ณด๋ ์ด์ ๋ฒฝ์ ๋ถ๋ช์น๊ฑฐ ๊ฐ๋ค. ๋กํ ๊ฐ์ฌ ใ