ํด๋์ค ์์๋ enum์ผ๋ก ํ๋ ์ด์ด๊ฐ ๊ฐ์์๋ ๊ธธ๋ชฉ๋ค์ ์ ๋ฆฌํด๋์
Town, Battle, Nonselect...
์๋ ๋ฉ์ธํด๋์ค(partial class Rpg)์ ๋ถ๊ธฐ์ ์ ๋ํ๋ด๋ ํจ์๋ค์ ์ง์ด๋ฃ์ด๋จ๊ฑฐ๋ ??
๊ทธ๋์ ํด๋์ค๋ฅผ ์ฌ๋ฌ๊ฐ๋ก ๋๋๋๊ฑฐ ๋ง๊ณ partial์ ์ด์ฉํด๋ณด๋ ค๊ณ
partial class๋ฅผ ์๋ก ๋ง๋ค์ด์ (partial class Rpg)
๋ผ๊ณ ํ๋ค์ ์ฌ๊ธฐ๋ค๊ฐ static STARTSELECT StartFork() ํจ์๋ฅผ ๋ฃ๊ณ
๋ฉ์ธํด๋์ค(partial class Rpg)์์ startfork๋ฅผ ์ฐ๋ ค๋๋ฐ ์์จ์ง...
์ด๊ฑฐ partialํ๋ฉด internal์ด๋ private์ผ๋ก ๋ฌถ์ฌ์๋๊ฒ๋ ๋ชป์ฐ๊ฒ ๋๋๊ธฐ์? ๊ฐ์ ํด๋์ค์ฌ๋??
using (namespace)๋ ํ๊ณ , ์ต๊ฐํ๊ฑฐ ๊ธฐ์ต๋๋๊ฑด ๋ค ํด๋ดค๋๋ฐ.. ๋ต์๋ชจ๋ฅด๊ฒ ๋ค...
public์ผ๋ก ์คํํด์ ์ฐ๊ธฐ์๋ ๋ฆฌ์คํฌ ์์ด์..
์ด๊ฒ main๋ฉ์๋ ๋ค์ด์๋ ํด๋์ค๊ณ
enum STARTSELECT
{
SELECTTOWN,
SELECTBATTLEFIELD,
NONESELECT,
}
namespace TextRpg
{
partial class TextRpg01
{
static void Main(string[] args)
{
Player NewPlayer = new Player();
STARTSELECT SelectCheck = STARTSELECT.NONESELECT;
while (true)
{
switch (SelectCheck)
{
case STARTSELECT.NONESELECT:
SelectCheck = StartFork();
break;
case STARTSELECT.SELECTTOWN:
SelectCheck = Town(NewPlayer);
break;
case STARTSELECT.SELECTBATTLEFIELD:
SelectCheck = Battlefield(NewPlayer);
break;
default:
break;
}
}
}
}
}
------------------------------------------------------------------
์ด๊ฒ partialํ๊ณ ํ ํจ์์
partial class TextRpg01
{
static STARTSELECT StartFork()
{
Console.Clear();
Console.WriteLine("1. ๋ง์");
Console.WriteLine("2. ๋ฐฐํ");
Console.WriteLine("์ด๋๋ก ๊ฐ์๊ฒ ์ต๋๊น?");
ConsoleKeyInfo CKI = Console.ReadKey();
switch (CKI.Key)
{
case ConsoleKey.D1:
Console.WriteLine();
Console.WriteLine("๋ง์๋ก ์ด๋ํฉ๋๋ค. ์๋ฌด ํค๋ ์ ๋ ฅํ์ธ์");
Console.ReadKey();
return STARTSELECT.SELECTTOWN;
case ConsoleKey.D2:
Console.WriteLine();
Console.WriteLine("๋ฐฐํ์ ์์ํฉ๋๋ค.์๋ฌด ํค๋ ์ ๋ ฅํ์ธ์");
Console.ReadKey();
return STARTSELECT.SELECTBATTLEFIELD;
default:
Console.WriteLine();
Console.WriteLine("์๋ชป๋ ์ ํ์ ๋๋ค.");
Console.ReadKey();
return STARTSELECT.NONESELECT;
}
} //๋ง์, ๋ฐฐํ ๋ถ๊ธฐ์ ->
////๋ง์,๋ฐฐํ์ ํํ ํค์ ๋ ฅ์ ๋ค์์ด๋
}
๋์๋ฌธ์ํ์ธ
๋ค์ด๋ฐํด๋๊ฑฐ๋ณด๋๊น ๋ ํ๊ฐ์๋ฐ..์ฑ ๋ณด๊ณ ๊ธฐ์ด๋ถํฐํด๋ณด๋๊ฑธ์ถ์ฒ
ํ ... ์ด์ํธ๋ฝ์ค์ ๋ฐฐ์ด๊ฑฐ ์์ฉํ๋๊ฑด๋...? ๋ค์ด๋ฐ์ผ๋ก ๊น๋๊ฑด ์ข ์๋์ง ์๋..? ์ ์๋์ด ์ง์ ์ด๋ฆ์ธ๋ฐ...
์๋ง ๋๊ณ ๊ทธ๊ฒ๋ณด๋ค partial์ ์ด๋ป๊ฒ ์ด๋ค๋๊ฑด์ง ๋ชจ๋ฅด๊ฒ ๋๋ฐ ํ์ชฝ partial ํด๋์ค๋ฅผ ๋ฉ์ธ ํด๋์ค๋ผ๊ณ ๋ถ๋ฅด๊ฒ ๋๋ค๋ ๊ฑฐ ์์ฒด๊ฐ ์ด๋ฏธ ์๋ชป ์ฌ์ฉํ๋๊ฑฐ ๊ฐ์.
๊ฑฐ์ชฝ์ mainํจ์๊ฐ ์๋ค๋ ๋ป์
๊ทธ๋ฆฌ๊ณ public์ผ๋ก staticํจ์ ๋๋ ค๋ ์๋๊ณ , ์๋ง๋๋ค๋๊ฑด ์ด๋ป๊ฒ ์๋ง๋๋๊ฑด์ง ์๋ ค์ฃผ์
์ฝ์ ์ฑ ํ๋ ๋ง๋ค๊ณ ์ ํด๋์ค ํ๋ ๋ง๋ค๊ณ ์ด๋ฆ Progarm์ผ๋ก ํ๊ณ partial ๋๋ค ๋ถ์ด๊ณ ์ ํด๋์ค ์ชฝ์ private static void Foo() ํ๋๊น Main(string[] args)์์ Foo๊ฐ ์๋์์ฑ ์๋ง ๋๋๋ฐ, ๊ทธ๋ฅ ์๋๋ค๋ ์ฝ๋๋ฅผ ๋ณด์ฌ์ฃผ๋๊ฒ ๋ ๋น ๋ฅด์ง ์๊ฒ ๋
void๋ ๋๋๊ฒ ๋ง๋๋ ๋ด ์ง๋ฌธ์ ๋ฐํ๊ฐ์ด void๊ฐ ์๋ STARTSELECT๊ฐ ๋ฐํ๊ฐ์..
STARTSELECT๊ฐ enum ์ด๋ฆ์ธ๋ฐ, ๊ทธ๊ฑธ์์ ์ด์ ๊ทธ๋ฐ๊ฐ?
์ด๊ฒ๋์๋..
enum์ ๋ฐํํ์ผ๋ก ํด๋ ๋๋๋ฐ...์ฝ๋๋ฅผ ์์ฌ๋ฆฌ๋ ์ด์ ๊ฐ ๋ญ์?
์์ ํ๋๋ผ ๋ฆ์ด์ง ์ฌ๋ฆผ
case STARTSELECT.SELECTTOWN: SelectCheck = Town(NewPlayer); break; case STARTSELECT.SELECTBATTLEFIELD: SelectCheck = Battlefield(NewPlayer); break;์ด๋ถ๋ถ์ ์์ฌ๋ ค์ ์๊ฐ์ํด๋๋
StartFork๊ฐ ์๋ ๋ฐ namespace๊ฐ ์์์
using TextRpg ์ ์ด๋จ๋๋ฐ ์ฝ๋์ฌ๋ฆฌ๋ฉด์ ํ์์๋ ๋ถ๋ถ ์ง์ด๋ค๋ฉด์ ๊ทธ์ชฝ๊น์ง ์ง์๋ฒ๋ฆฐ๋ฏ...
using์ด ์๋๋ผ namespace TextRpg {}๋ก ๋ฌถ์ฌ์ผ ํจ
ํ ๊ณ ๋ง๋ค!!!!!!! using์ผ๋ก ์ฐ๋๊ฑฐ๋ namespace๋ฌถ๋๊ฑฐ๋ ์์ ๋ค๋ฅธ์๋ฏธ์ธ๊ฑฐ์ผ?
using: ๋ค์์คํ์ด์ค ์ด๋ฆ ์์ด ์ฌ์ฉํ๊ธฐ ( System.Console.WriteLine() -> Console.WriteLine() ) ๊ฑฐ๊ธฐ์ using์ ์ฐ๋ฉด TextRpg01์์ ๋ค๋ฅธ ํด๋์ค์ธ TextRpg.TextRpg01๋ฅผ ์ฐ๊ฒ ๋ค๋ ์๋ฏธ๊ณ , ๋ค์์คํ์ด์ค ์ ์ธ์ ๋ชจ๋ ํด๋์ค์ ์์ด์ผ ํ๊ฒ ์ง?
๋ง๋ค... ๊ณ ๋ง๋ค์ด... namespace์์ class์๋๊ฑธ ๊น๋จน์..