C# - 어서트(assert)

sour_gexko·2021년 3월 27일
0

C# Study

목록 보기
4/5

코드 검증을 위한 코드 - 어서트

  • 절대로 발생하지 않아야 하는 조건을 런타임 중에 검사
    • 만약 발생한다면 코드가 올바르게 동작하지 않는다는 의미
    • 함수의 선조건 검사에 쓰기 적당
  • 디버그 모드에서만 동작
    • 릴리즈 모드에서는 어서트 함수는 무시됨
    • 릴리즈 모드에서 동작하면 성능 저하가 발생
  • 최종 제품의 성능저하 없이 개발 중에 문제를 고치는 바람직한 방법
enum EMenu
{
	Menu1 = 1,
    Menu2,
    Menu3,
    Menu4,
    Menu5,
    Count
}

static double GetPrice(EMenu menu)
{
	switch (menu)
	{
          case EMenu.Menu1:
              return 10000,
          case EMenu.Menu2:
              return 11000,
          case EMenu.Menu3:
              return 12000,
          case EMenu.Menu4:
              return 13000,
          case EMenu.Menu5:
              return 14000,
          default:
              Debug.Assert(menu < EMenu.Count, "Wrong Menu Number");
              return -1; 
              // menu < EMenu.Count 대신 false 사용 가능
	}
}

Debug.Assert()

  • 사용하기 위해서는 System.Diagnostics 라이브러리를 추가해야함
using System.Diagnostics;
  • Assert()안에 들어가는 조건이 거짓일 때 프로그램은 일시 중단되고, 어서트 메시지가 출력창에 출력

Debug.Assert() 호출하기

  • 방식1
Debug.Assert(menu < 5);
Debug.Assert(<표현식>)
  • 방식2 - 어서트가 일어날 때 보여줄 메시지를 함께 작성
Debug.Assert(menu < 5, "Wrong menu number");
Debug.Assert(<표현식>, <메시지>);
profile
개발자가 되고싶은 직장인

0개의 댓글