26. ์ ๋ค๋ฆญ์ค(Generics) ํ์
์ ์ฝ
ยท
๐ป Programming Language/C#
์ ๋ค๋ฆญ์ค ํ์
์ ์ฝ ์์์ ๋์จ ์ผ๋ฐํ ๋ฉ์๋, ์ผ๋ฐํ ํด๋์ค์์ ์ฌ์ฉํ๋ T(Type Parameter)๋ ๋ชจ๋ ๋ฐ์ดํฐ ํ์์ ๋์ ํ ์ ์๋ ๋งค๊ฐ๋ณ์๋ก ์ฌ์ฉ๋์๋ค. ๋ชจ๋ ํ์์ ๋์ ํ๋ ๋งค๊ฐ๋ณ์๊ฐ ํ์ํ ์๋ ์์ง๋ง ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ๋ ์กด์ฌํ ์ ์๋ค. ๊ทธ๋ฐ ๊ฒฝ์ฐ์๋ ๋งค๊ฐ๋ณ์์ ์ ์ฝ ์กฐ๊ฑด์ ์ค ์ ์๋ค. ์ ์ฝ ์กฐ๊ฑด ์ฃผ๋ ๋ฐฉ๋ฒ์ผ๋ก where์ ์ ์ด์ฉํ๋ค. Ex) class DemoList where T : DemoClass { ... } ์์ ๊ฐ์ ๊ฒฝ์ฐ์ T๋ผ๋ ๋งค๊ฐ๋ณ์๋ "DemoClass๋ก ๋ถํฐ ์์๋ฐ๋ ํ์์ด์ด์ผ ํ๋ค" ๋ผ๋ ์๋ฏธ void CopyData(T a, T b) where T : struct // struct๋ ๊ธฐ๋ณธ์ ์ผ๋ก value type(๊ฐ ํ์) { ... } ์์ ๊ฐ์ ๊ฒฝ์ฐ T๋..