class Program
{
static void Main(string[] args)
{
string characterStringInfo;
Console.WriteLine("*===================================*");
Console.WriteLine("|영웅님! 캐릭터 Level을 입력해주세요.|");
Console.WriteLine("*===================================*");
Console.Write("[Lv 입력]: ");
characterStringInfo = Console.ReadLine();
Console.WriteLine("영웅님의 캐릭터 레벨은 [{0}]입니다.", characterStringInfo);
Console.WriteLine("영웅님의 이벤트로 1 레벨업! ");
Console.WriteLine("영웅님의 캐릭터 레벨은 [{0}]입니다.", characterStringInfo + 1);
}
}
[Lv 입력]: 10
영웅님의 캐릭터 레벨은 [10]입니다.
영웅님의 이벤트로 1 레벨업!
영웅님의 캐릭터 레벨은 [101]입니다.
characterStringInfo는 string 타입이다.string + int 연산은 문자열 연결로 처리된다."10" + 1 → "10" + "1" → "101"그래서 여기서 문자열을 숫자로 바꾸는 작업 이 필요하다는 걸 알 수 있었다.
int level = int.Parse("10"); // 문자열을 정수로 변환
Console.Write("[Lv 입력]: ");
string input = Console.ReadLine();
int level = int.Parse(input);
Console.WriteLine("[Parse 사용] 캐릭터 레벨: {0}", level + 1);
[Lv 입력]: abc < ERROR!!!
오류로 종료됨...
"abc", "10a" 등 → 프로그램 오류로 종료됨bool success = int.TryParse("10", out int level);
out 변수에 값 저장, 결과는 true0) 저장, 결과는 falseConsole.Write("[Lv 입력]: ");
string input = Console.ReadLine();
bool success = int.TryParse(input, out int level);
Console.WriteLine("[TryParse 사용][성공 여부: {0}] 캐릭터 레벨: {1}", success, level + 1);
[Lv 입력]: 10
[TryParse 사용][성공 여부: True] 캐릭터 레벨: 11
[Lv 입력]: aa
[TryParse 사용][성공 여부: False] 캐릭터 레벨: 1
| 상황 | 추천 방식 | 이유 |
|---|---|---|
| 입력이 정확하다고 확신 | Parse() | 간결하고 빠름 |
| 입력값이 예측 불가능 | TryParse() | 예외 없이 안전하게 처리 가능 |
아니다. 처리할 데이터(값)을 원하는 값 타입 한정해서 변경해주는 것이 Parse, TryParse이다.
| 자료형 | 설명 | 예시 |
|---|---|---|
int | 정수 | int.TryParse("123", out int i) |
float | 실수 (단정도) | float.TryParse("3.14", out f) |
double | 실수 (배정도) | double.Parse("3.14") |
decimal | 고정 소수점 | decimal.TryParse("123.45", out d) |
bool | 참/거짓 | bool.Parse("true") |
char | 문자 1개 | char.TryParse("A", out c) |
DateTime | 날짜 | DateTime.TryParse(...) |
TimeSpan | 시간 간격 | TimeSpan.TryParse(...) |
Enum | 열거형 | Enum.TryParse("Monday", out d) |
정리하면서 알았는데 DataTime 과 TimeSpan 도 되는지는 처음 알았다.
역시 사람은 계속해서 배우나 보다~
Parse와 TryParse는 문자열을 숫자 등으로 바꾸는 데 사용됨