• Home
  • About
    • KKsDev photo

      KKsDev

      게임 프로그래머를 목표로 Unity, C#을 공부하고 있습니다.

    • Learn More
    • Email
    • Github
    • Steam
  • Posts
    • All Posts
    • All Tags
  • Projects

C# 입력과 형 변환

17 Jul 2023

Reading time ~2 minutes

Input (입력)

stirng Input = Console.ReadLine();

콘솔에서 입력을 받기위해서는 Console.ReadLine()함수를 사용한다.

이 함수는 항상 string을 return하기 때문에 입력 받은 값을 원하는 자료형으로 형 변환 해주어야 한다.

형 변환 number to number

형 변환을 하고싶은 변수 앞에 괄호에 자료형을 명시한다.

C# 에서는 숫자 자료형간의 연산을 수행할때 명시하지 않더라도 암시적 형 변환 된다.

int x = 10;
float y = 10.1f;

float z =  x + y; // x가 암시적으로 int -> float로 형변환 된다.

하지만 자동으로 형 변환을 했을때 값이 누락될수 있는 경우에는 암시적 형 변환이 불가능하고 명시적 형 변환 즉 , 강제 형 변환을 해주어야 한다.

이렇게 강제 형 변환을 하면 데이터가 손실될수 있다.

int x = 10;
float y = 10.5f;

int z = x + (int)y; // 강제 형 변환을 하며 y의 값이 손실
Console.WriteLine(z); // 20출력

String으로 형 변환

문자가 아닌 자료형을 문자로 바꾸는 방법 .ToString() 함수를 통해서 변환할 수 있다

int x = 10;
float y = 10.5f;
bool myBool = true;

string temp = x.ToString();
Console.WriteLine(temp); // 10출력

temp = y.ToString();
Console.WriteLine(temp); // 10.5출력

temp = myBool.ToString();
Console.WriteLine(temp); // true 출력

String을 형 변환

문자를 다른 자료형으로 바꾸는 방식은 대표적으로 3가지 방법이 존재한다.

  • Convert 클래스 이용
  • Parse() 함수 이용
  • TryParse() 함수 이용

Convert()

string str = "10";
int x  = Convert.ToInt32(str);

str = "true";
bool b = Convert.ToBoolean(str);

Parse()

string str = "10";
int x  = int.Parse(str);

str = "true";
bool b = bool.Parse(str);

Convert 클래스와 Parse() 함수를 이용하면 변환한 값을 바로 리턴 받을수 있습니다. 하지만 변환할 수 없는 값일 경우 문제가 생깁니다.

string str = "10xxx";
int x = Convert.ToInt32(str); // 10xxx 는 int로 변환할 수 없기 때문에 에러

str = "testtest";
bool b = bool.Parse(str); // testtest는 bool로 변환할 수 없기 떄문에 에러

TryParse()

위와 같이 변환하고자 하는 string이 정확히 어떤형태 인지 모르는 상황에서는 Conver나 Parse()를 사용하면 에러가 발생할 수 있다.

이때 TryParse() 함수를 사용하여 에러 발생을 방지할 수 있다.

string str = "10";
int x;
bool isSuccess = int.TryParse(str, out x); // isSuccess = true

str = "testtest"
bool b;
isSuccess = bool.TryParse(str, out b); // isSuccess = false

TryParse() 함수는 성공여부를 bool으로 return하고

out 을 통해서 결과 값을 반환한다.



CSharp Share Tweet +1