본문 바로가기
유니티

unity TryParse, Parse

by 유니티세상 2025. 2. 17.

 

1. int.Parse(string s)

  • 문자열(string)을 정수(int)로 변환.
  • 변환할 수 없는 값(예: "abc")이 입력되면 예외(FormatException) 발생.
  • null을 입력하면 ArgumentNullException 발생.
int number = int.Parse("123"); // 성공: number = 123
int number2 = int.Parse("abc"); // 실패: FormatException 발생

2. int.TryParse(string s, out int result)

  • 변환을 시도하고 성공 여부(true or false)를 반환.
  • 변환 실패 시 예외를 발생시키지 않고 false 반환, result는 0.
  • 예외 발생을 방지하고 싶을 때 사용.
bool success = int.TryParse("123", out int number); // success = true, number = 123
bool fail = int.TryParse("abc", out int number2); // fail = false, number2 = 0

3. decimal.Parse(string s)

  • 문자열을 decimal 타입으로 변환.
  • 변환 불가능한 값이 들어오면 예외(FormatException) 발생.
  • null을 입력하면 ArgumentNullException 발생.
decimal price = decimal.Parse("12.34"); // 성공: price = 12.34M
decimal price2 = decimal.Parse("abc"); // 실패: FormatException 발생

4. decimal.TryParse(string s, out decimal result)

  • 변환을 시도하고 성공 여부(true or false)를 반환.
  • 변환 실패 시 예외 발생 없이 false 반환, result는 0.0M.
bool success = decimal.TryParse("12.34", out decimal price); // success = true, price = 12.34M
bool fail = decimal.TryParse("abc", out decimal price2); // fail = false, price2 = 0.0M

정리 (예외 발생 여부)

메서드 성공 시 결과 실패 시 동작 예외 발생 여부

int.Parse 변환된 int 값 FormatException 발생 예외 발생
int.TryParse 변환된 int 값 false 반환, result = 0 예외 없음
decimal.Parse 변환된 decimal 값 FormatException 발생 예외 발생
decimal.TryParse 변환된 decimal 값 false 반환, result = 0.0M 예외 없음

언제 어떤 걸 써야 할까?

  • 예외 처리가 필요 없고 값이 항상 유효하다면 → Parse()
  • 입력값이 유효하지 않을 가능성이 있다면 → TryParse()
    (예외 발생을 막고, 실패했을 때 기본값을 지정할 수 있음)