private WeaponController<BaseWeapon> weaponController;


public void AddEvent<T>(WeaponController<T> weaponController) where T : BaseWeapon

{

this.weaponController = weaponController as WeaponController<BaseWeapon>;


// Add Events..

}


ํ˜ธ์ถœํ•˜๋Š” ๊ณณ์—์„œ T์— BaseWeapon ์ƒ์†๋ฐ›์€ SwordWeapon ๋„ฃ์–ด์„œ ํ˜ธ์ถœํ•˜๋ฉด


this.weaponController์— null์ด ๋“ค์–ด๊ฐ€๋”๋ผ๊ตฌ


WeaponController<SwordWeapon>์—์„œ WeaponController<BaseWeapon> ํƒ€์ž…์œผ๋กœ ์—…์บ์ŠคํŒ… ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์Œ?


๋„ ์™€ ์ฃ  ,,,


//

๊ณต๋ณ€์„ฑ ๋ฐ˜๊ณต๋ณ€์„ฑ ๋ถˆ๋ณ€์„ฑ์ด ์–ด์ฉŒ๊ณ  ์ €์ฉŒ๊ณ  ์žˆ๋”๋ผ


https://sticky32.tistory.com/entry/C-%EA%B3%B5%EB%B3%80%EC%84%B1%EA%B3%BC-%EB%B0%98%EA%B3%B5%EB%B3%80%EC%84%B1%EC%9D%B4%EB%9E%80

[C#] ๊ณต๋ณ€์„ฑ๊ณผ ๋ฐ˜๊ณต๋ณ€์„ฑ์ด๋ž€?

๊ณต๋ณ€์„ฑ๊ณผ ๋ฐ˜๊ณต๋ณ€์„ฑ ๊ณต๋ณ€์„ฑ๊ณผ ๋ฐ˜๊ณต๋ณ€์„ฑ ์–ด๋–ค ์˜๋ฏธ์ด๊ณ  ์–ด๋–ป๊ฒŒ ์“ฐ๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ? ๊ฐœ์š” ์‚ฌ์‹ค ๊ณต๋ณ€์„ฑ๊ณผ ๋ฐ˜๊ณต๋ณ€์„ฑ์„ ํ†ต์นญ ๊ฐ€๋ณ€์„ฑ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด์™€ ๋ฐ˜๋Œ€๋˜๋Š” ์˜๋ฏธ๋กœ๋Š” ๋ถˆ๋ณ€์„ฑ์ด ์žˆ๋‹ค. ๊ฐ€๋ณ€์„ฑ(Variance) : ํŠน์ • ํƒ€์ž…์˜ ๊ฐ์ฒด๋ฅผ ๋‹ค๋ฅธ ํƒ€์ž…์˜ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ์„ฑ๊ฒฉ์„ ๋งํ•œ๋‹ค. ๊ณต๋ณ€์„ฑ(Covariant) : X -&gt; Y๊ฐ€ ๊ฐ€๋Šฅํ•  ๋•Œ C๊ฐ€ C -&gt; C๋กœ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ด๋Š” ๊ณต๋ณ€์ด๋‹ค. ๋ฐ˜๊ณต๋ณ€์„ฑ(Contravariant) : X -&gt; Y๊ฐ€ ๊ฐ€๋Šฅํ•  ๋•Œ C๊ฐ€ C -&gt; C๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ด๋Š” ๋ฐ˜๊ณต๋ณ€์ด๋‹ค. ๋ถˆ๋ณ€์„ฑ(Invariant) : X -&gt; Y๊ฐ€ ๊ฐ€๋Šฅํ•˜๋”๋ผ๋„ C๋Š” C๋กœ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๋„ค๋ฆญ์€ ๋ถˆ๋ณ€์ด๋‹ค. ์ข€ ๋” ์ƒ์„ธํžˆ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๋‹คํ˜•์„ฑ์„ ๊ฐ€์ง„ ํ™˜๊ฒฝ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. class ..

sticky32.tistory.com