코드 검증을 위한 코드 - 어서트
- 절대로 발생하지 않아야 하는 조건을 런타임 중에 검사
- 만약 발생한다면 코드가 올바르게 동작하지 않는다는 의미
- 함수의 선조건 검사에 쓰기 적당
- 디버그 모드에서만 동작
- 릴리즈 모드에서는 어서트 함수는 무시됨
- 릴리즈 모드에서 동작하면 성능 저하가 발생
- 최종 제품의 성능저하 없이 개발 중에 문제를 고치는 바람직한 방법
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() 호출하기
Debug.Assert(menu < 5);
Debug.Assert(<표현식>)
- 방식2 - 어서트가 일어날 때 보여줄 메시지를 함께 작성
Debug.Assert(menu < 5, "Wrong menu number");
Debug.Assert(<표현식>, <메시지>);