(๊ธ์ญํ ์ํจ)
TestStruct ๋ผ๋ ๊ตฌ์กฐ์ฒด๋ฅผ ๋ง๋ค์๊ณ
๊ทธ ๋ค์ List<TestStruct> TestStructList ๋ผ๋ ์ ๋ค๋ฆญ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์์๋...
์ด ๋ฆฌ์คํธ์ Add, Clear, Remove, Contain ๊ฐ์๊ฑธ ์ธ๋ ๊ฐ๋น์ง๊ฐ ์๊ธฐ์ง ์๋๊ฑฐ์??
๊ตฌ์กฐ์ฒด๋ ๊ฐ ํ์์ด๋ผ ๊ฐ๋น์ง ์ ์๊ธด๋ค๊ณ ์๊ณ ์์๋๋ฐ
๊ฐ๋น์ง๊ฐ ์๊ธด๋ค๋๊ฒ ๋ฌด์จ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ก ํ ๋นํ๋๊ฐ๋ฅผ ๋ฌผ์ด๋ณด๋๊ฑฐ์?
์๋๋ฉด ๊ธฐ์กด ์ธ์คํด์ค์ ๋ํ ๋ ํผ๋ฐ์ค๊ฐ ๋ชจ์กฐ๋ฆฌ ์์ด์ ธ์ ๊ฐ๋น์ง ์ฒ๋ฆฌ ๋๋ค๋ ์ด์ผ๊ธฐ์?
ใ ใ ํ์ ๋ฌผ์ด๋ณด๋๊ฑฐ
Add, Contain๋ ๋ ํผ๋ฐ์ค๊ฐ ์์ด์ง๋๊ฒ ์๋๋๊น ๋น์ฐํ ๊ฐ ํ์ ์ด๋ ๊ฐ์ฒด ํ์ ์ด๋ ๊ฐ๋น์ง ์ปฌ๋ ํ ๋๋ ๊ฑด ์๊ณ Clear๋ Remove ๊ฐ์ ๊ฒฝ์ฐ ๋ฐ๋ก ๊ฐ๋น์ง ์ปฌ๋ ํ ๋๋๊ฑด ์์. ๊ฐ ํ์ ์ ๋ ํผ๋ฐ์ค ๊ด๋ฆฌ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ. ๋ท๋ท C# List๋ ๊ฐ ํ์ T๊ฐ ๋ค์ด์ค๋ฉด ๋ฐ๋ก ๊ทธ์ ๋ง๋ ๊ตฌํ์ด ์์์ ์์ฑ๋์ด์ T ํ์ ๋ฐฐ์ด์ด ๋ด๋ถ์ ์ผ๋ก ์กด์ฌํ๋ ๊ตฌ์กฐ๋ก ์๊ณ ์์ ์ ๋ํฐ C#์ด ๊ทธ๋ฐ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง
์ํญ ใ ใ ใณใณใณ
์์๊น
ํด ๋คํ์ด๋ค ใณใณ
์๊น๋๋ค ๊ฐํ์์ด๋ผ๊ณ ๊ผญ ์คํ์๋ง ์๋๊ฒ ์๋๊ธฐ ๋๋ฌธ์ ๊ด๋ฆฌ๋์ง ์๋ ํ์ ์ฌ์ฉํ์ง ์๋ ์ด์ ํ์ ์๋ค๋ฉด gc๋์์ ๋๋ค ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ add ์ฒ๋ผ list ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ค์ด๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด(c# ๋ฆฌ์คํธ๋ ๋งํฌ๋ ๋ฆฌ์คํธ๊ฐ ์๋๋๋ค) ์๋ก์ด ๋ฐฐ์ด(์นจ์กฐํ์)์ด ํ์ ํ ๋น๋์ด ๊ทธ ๋ฐฐ์ด์ ๊ฐํ์(์ด๋ ํ์ ์กด์ฌํฉ๋๋ค)์ ์ ์ฅํ ์ ์๋๊ฒ๋๋ค ๊ทธ๋์ ์ด๋ฌํ ์ด์ ๋ก ๋ฆฌ์คํธ ์์ฑ์ ์ธ์์ ์์ ํฌ๊ธฐ๋ฅผ ์ ๋ ฅํ๋ฉด ์ฒ์๋ถํฐ ๊ทธ ํฌ๊ธฐ๋ฅผ ํ์ ์ก์ต๋๋ค - dc App
์ด๋ผ๊ณ ๋ง ๋งํ๋ฉด ๊ฑฐ๋ถ๊ฐ์ด ๋ค์๋ ์๊ธฐ๋๋ฌธ์ ์์๋ก ์ฆ๋ช ํ์๋ฉด ref struct๋ฅผ ๋ฐฐ์ด๋ก ๋ง๋ค์ด ๋ณด์ญ์์ ref struct๋ ์ค์ง ์คํ์๋ง ์กด์ฌํ๋ ๊ตฌ์กฐ์ฒด์ ๋๋ค - dc App