์๋ฃํ๋ค์ ์ผ๋ฐํํ์ฌ ๋ค์ํ ์๋ฃํ์ ๋ํด Tํ๋๋ก ์ ์ํ ์ ์๋ค.์ธ์๊ฐ ์ฌ๋ฌ๊ฐ์ฌ๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.dictionary์ฒ๋ผ ์ ์ธํ๋ฉด ๋๋ค.์ผ๋ฐํ ํด๋์ค์๋ where๋ฅผ ์ถ๊ฐํ์ฌ ์กฐ๊ฑด์ ์ถ๊ฐํ ์ ์๋ค.์ฌ์ฉ๋ฐฉ๋ฒclass ํด๋์ค ์ด๋ฆ<T> where T: ์ ์ฝ ์กฐ๊ฑด
abstract ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์์ ๋ฐ๋ ํด๋์ค์์ ๊ณตํก์ ์ผ๋ก ๊ตฌํํด์ผ ํ๋ ํด๋์ค๋ ๋ฉค๋ฒ๋ฅผ ๋ง๋ค ์ ์๋ค.์์ ํด๋์ค์ ๊ณตํต์ ์ธ ์ ์๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด๋ค.ํด๋์ค ์ ์ ์์ abstract ํค์๋๋ฅผ ์ ์ธํ๋ฉด ํด๋์ค๋ฅผ ์ถ์ ํด๋์ค๋ก ์ ์ธํ ์ ์๋ค.์ถ์ ํด๋์ค๋ ๊ฐ์ฒดํ
์ ๊ทผ์/์ค์ ์ ๋ฉ์๋๋ฅผ ๋ฌ์ ํ๋ ์ ๊ทผ์ ๋ํ ๋จ์ผ ์ฐฝ๊ตฌ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋ฐ๋์งํ์ง๋ง ๋งค๋ฒ ๋ฉ์๋๋ฅผ ์์ฑํ๋ค๋ฉด ๋ฒ๊ฑฐ๋ก์ด ์์ ์ด ๋ ๊ฒ์ด๋ค.์ด๋ฐ ๋จ์ ์ ๋ณด์ํ๊ธฐ Cํ๋กํผํฐ๋ ์์ฑ์ผ๋ก ๋ฒ์ญ๋์ง๋ง, ๊ฐ์ฒด์งํฅ์์ ๋งํ๋ attribute์๋ ๋ค๋ฅธ ๋ป์ด๋ค.๊ฐ์ฒด ์งํฅ์์ ๋งํ๋
๋ฉ์๋ ์์ฒด๋ฅผ ์ธ์๋ก ๋๊ฒจ์ฃผ๋ โํ์โ์ด๋ค.์ฆ ๋ธ๋ฆฌ๊ฒ์ดํธ๋ฅผ ํตํด ๋ฉ์๋๋ฅผ ๋งค๊ฐ ๋ณ์๋ก ์ ๋ฌํ ์ ์๋ค.ํจ์๊ฐ ์๋๋ผ 'ํ์'์ด๋ผ๋ ๊ฒ์ ์ ์ํ์.์ฐ๋ฆฌ๊ฐ ๊ฒ์์ ํ๋๋ฐ ๋ฒํผ์ ๋๋ฅด๋ฉด ํ๋ ์ด์ด๊ฐ ๊ณต๊ฒฉ์ ํ๋ค๊ณ ์๊ฐํด๋ณด์.์ฐ๋ฆฌ๊ฐ ๋ฒํผ์ ๋๋ ์ ๋ ์ผ์ด๋ ์ผ๋ค์ ButtonP
delegate ๊ฐ์ฒด์ ์ ๊ทผํ ์ ์๋ค๋ฉด ํธ์ถํ๋ ๋ถ๋ถ๋ ๋๊ตฌ๋ ํธ์ถํ ์ ์๊ฒ ๋๋ค.OnClicked๋ผ๋ ๋ธ๋ฆฌ๊ฒ์ดํธ๋ ButtonPressed ํจ์๊ฐ ํธ์ถ๋ ๋ ์ฌ์ฉํ๊ธฐ ์ํด clickedFunction์ ๋ง๋ค์๋๋ฐ clicked();์ฒ๋ผ ๊ฐ์ฒด๋ฅผ ์ ๊ทผํด ๋๊ตฌ๋ ๋ฑ๋ก๋
์์ธ ์ฒ๋ฆฌ๋ ์์ธ๊ฐ ๋ฐ์ํ์ ๋ ์์ธ๋ฅผ ์บ์นํด์ ํด๊ฒฐํ๋ค๋ ๋ป์ด๋ค.1\. 0์ผ๋ก ๋๋ ๋2\. ์๋ชป๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ ๋ (null)3\. ์ค๋ฒํ๋ก์ฐ(์คํ์ด๋ ํ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ชป ๊ฑด๋๋ ธ์ ๊ฒฝ์ฐ)๋ฑ๋ฑ..try๋ฌธ ์์์ ์์ธ์ฌํญ์ด ๋ฐ์ํ ๊ฒฝ์ฐ ๊ทธ์ ์์ํ๋ catch๋ฌธ์์
ํ๋ก๊ทธ๋จ์ ๋ฐํ์์ค์ ์ฝ๋์ ๋ํ ์ ๋ณด๋ฅผ ์กฐ์ฌํ๊ณ ์กฐ์ํ ์ ์๋ ๊ธฐ๋ฅReflection ์ ์ฌ์ฉํ๋ฉด ๊ฐ์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ฐํ์์ ๋์ ์ผ๋ก ๋ฏ์ด๋ณด๊ณ ๋ถ์ํ ์ ์๊ณ , ์ ๋ณด๋ฅผ ์ป์ด ์ง์ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ฑฐ๋ ํ๋กํผํฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค.\*\*C- \`GetTy