public class AAA
{
int a;
}
public class B: AAA
{
ATypeย aType;
ย ย public void Init(AType type)
ย ย {
ย ย ย ย ย aType= type;
ย ย }
}
public class C:ย AAA
{
BType bTypeย
ย ย public void Init(BTypeย type)
ย ย {
ย ย ย ย ย bTypeย = type;
ย ย }
}
์ด๋ฐ ์ฝ๋์ธ๋ฐ
AAA a = new B();ย
AAA b =ย new C();
์ด๋ ๊ฒํ๊ณ
a.Init(AType .A);
b.Init(BType .A);
์ด๋ ๊ฒ ์ ๊ทผํ๊ณ ์ถ์๋ฐ ์ด๊ฑฐ ์ ์ ๊ทผ์ด ์๋๋๊ฑฐ์?
๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฒ enumํ์ ์ด ๋ค๋ฅธ๊ฑธ๋ก Initํ๊ณ ์ถ์๋ฐ ์ผ์ผํ๋๊ฑฐ ๋ง๋๊ฑฐ์ผ?
์ ์ธ์ AAA ๋ก ํด๋๊ณ ๋ญ์๋ฆฌํ๋ ๊ฑฐ๋.
์ด๊ฒ ๋ชจ๋?
์ด๊ฒ ๋ญํ๋ ์ฝ๋๋
๋ถ๋ชจ ํด๋์ค์ Init์ด ์์ด์ ํด๋ฆฌ๋ชจํผ์ฆ ์๋๋ ๊ฒ ๊ฐ์๋ฐ ์ผ๋จ ์ปดํ์ผ ์๋ฌ๋๋ฉด ์ ๋๋์ง ์๋ฌ๋ฅผ ์ฝ์ด๋ด..
์ ๊ทธ๋ฆฌ๊ณ ์ธ์๋ ๋ฐํํ์ด ๊ฐ์์ผ ๋จ ํด๋ฆฌ๋ชจํผ์ฆ ์ฌ์ฉํ๋ ค๋ฉด
๊ตฌํํ๋ ค๋ฉด ๊ทธ๋ฅ switch ๋ฌธ ์จ์ ํ์ ๋ณํํํ ๋ณ์ ๋ฃ์ด์ผ ํ ๊ฒ ๊ฐ๋ค. ์ด๋ฏธ init ํ๋ ์์ ์์ class B์ธ์ง C ์ธ์ง ์๊ณ ์์ด์ผ ํ๋๊น
๊ฒ์ํด๋ณด๋ switch ๋ ํ ๊ตฌ๋ถ ๋ชปํ๋ ๋ฏ
https://stackoverflow.com/questions/4478464/c-sharp-switch-on-type
AAA์ Init์ด ์์ผ๋๊น ์ ๊ทผ์ ๋ชปํ์ง. "์ด๊ฑด AAA์ ์ผ์ข ์ด์ผ ๊ทธ๋ฌ๋๊น Init์ ์ฐพ์์ ํธ์ถํด์ค" ํ๋ฉด ์ปดํ์ผ๋ฌ๊ฐ "???? AAA๋ Init ๊ฐ์๊ฑฐ ์๋๋ฐ" ํ๋๊ฑฐ์ - dc App
AAA a; AAA b; void Init() { a= new B(); a.Init(AType.A); b = new C();
์ ๋๊ธ์งค๋ฆผ
b.Init(Btype.A); ์ผ์ผ ํด์จ์ ๊ทธ๋ฅ AAA์์ Init(AType type) Init(BType type) ๋งค๊ฐ๋ณ์๊ฐ ๋ค๋ฅธ ํจ์๋ฅผ ๋ฃ B์๋ Init(AType type) C์๋ Init(BType type) ์๊ณจ ๋ฃ์ด์ ์ผ๋จ ํด๊ฒฐ์๋์์ด์