반응형
소스 코드
Application.cs
using System;
namespace 콘솔_응용_상호_작용_개요___메뉴
{
class Application
{
#region 단일체
internal static Application Singleton
{
get;
private set;
}
static Application()
{
Singleton = new Application();
}
Application()
{
}
#endregion 단일체
internal void Init()
{
Console.WriteLine("콘솔 응용의 기본 제어 - 메뉴로 상호 작용");
Console.WriteLine("아무 키나 누르면 시작합니다.");
Console.ReadKey(true);
}
internal void Run()
{
ConsoleKey key = ConsoleKey.NoName;
while((key = SelectMenu())!= ConsoleKey.Escape)//반복((키=메뉴 선택())!=종료키)
{
switch(key) //선택한 키에 따라
{
case ConsoleKey.F1: FunA(); break;//키1 일 때: 메서드1 수행
case ConsoleKey.F2: FunB(); break;//키2 일 때: 메서드2 수행
case ConsoleKey.F3: FunC(); break;//키3 일 때: 메서드3 수행
case ConsoleKey.F4: FunD(); break;//키4 일 때: 메서드4 수행
case ConsoleKey.F5: FunE(); break;//키15일 때: 메서드5 수행
default: Console.WriteLine("잘못 선택하였습니다."); break;//다른 키: 잘못 선택한 것을 통보
}
Console.WriteLine("아무 키나 누르세요.");
Console.ReadKey(true);//사용자가 결과 확인할 기회를 부여(아무 키나 누를 때까지 대기)
}
}
internal void Exit()
{
Console.WriteLine("아무 키나 누르시면 프로그램을 종료합니다.");
Console.ReadKey(true);
}
private void FunE()
{
Console.WriteLine("FunE");
}
private void FunD()
{
Console.WriteLine("FunD");
}
private void FunC()
{
Console.WriteLine("FunC");
}
private void FunB()
{
Console.WriteLine("FunB");
}
private void FunA()
{
Console.WriteLine("FunA");
}
private ConsoleKey SelectMenu()
{
Console.Clear();
Console.WriteLine("사용자와 상호 작용 개요 - 메뉴편");
Console.WriteLine("{0}:FunA", ConsoleKey.F1);
Console.WriteLine("{0}:FunB", ConsoleKey.F2);
Console.WriteLine("{0}:FunC", ConsoleKey.F3);
Console.WriteLine("{0}:FunD", ConsoleKey.F4);
Console.WriteLine("{0}:FunE", ConsoleKey.F5);
Console.WriteLine("종료를 원하시면 {0}를 누르세요.", ConsoleKey.Escape);
return Console.ReadKey(true).Key;
}
}
}
Program.cs
//http://ehpub.co.kr
//실습으로 다지는 C#
//콘솔 응용 메뉴를 통한 상호 작용 개요
namespace 콘솔_응용_상호_작용_개요___메뉴
{
class Program
{
static void Main(string[] args)
{
Application app = Application.Singleton;
app.Init();
app.Run();
app.Exit();
}
}
}
반응형
'C# > 실습으로 다지는 C#' 카테고리의 다른 글
런타임에 라이브러리 로드하기 - .NET 리플렉션 [C#] (0) | 2020.07.03 |
---|---|
[C# 소소] 콘솔 글자 색 바꾸기 - Windows API 사용 (0) | 2020.04.13 |
19. 택배 요금 계산 시뮬레이션 C# (0) | 2020.04.12 |
[018] C# 실현 관계(Realization) 실습 (0) | 2020.04.10 |
[016] 의존(Dependency) 관계 실습 (0) | 2020.04.09 |