C#은 메서드를 호출해서 반환할 때 하나의 값만 반환할 수 있습니다. 만약 값을 여러 개 반환하고 싶다면 out 키워드를 사용해야 합니다.
out 키워드를 사용하는 대표적인 메서드는 TryParse() 메서드입니다. TryParse() 메서드는 int.TryParse(), float.TryParse() 처럼 기본적인 숫자 자료형에 소속되어 있는 클래스 메서드 입니다.
int output;
int.TryParse("123", out output);
Parse() 메서드는 매개변수로 잘못된 값을 넣으면 예외가 발생해 프로그램이 종료됩니다.
하지만 TryParse() 메서드는 숫자로 바꿀 수 있는 문자열을 매개변수로 넣으면 true를 반환하고, 바꿀 수 없는 문자열을 매개변수로 넣으면 fasle를 반환합니다.
만약 문자열을 숫자로 변환한다면 결과는 반환하지 않고 매개변수 out int result 부분에 변수로 반환합니다.
사용자에게 입력을 받고 int.TryParse() 를 사용하여 숫자로 변환되는 코드를 살펴보겠습니다.
class Program
{
static void Main(string[] args)
{
Console.Write("숫자 입력 : ");
int output;
bool result = int.TryParse(Console.ReadLine(), out output);
if(result)
{
Console.WriteLine("입력한 숫자 : " + output);
}
else
{
Console.WriteLine("숫자를 입력해주세요!");
}
}
}
/*
[실행 결과 1]
숫자 입력 : 10000
입력한 숫자 : 10000
[실행 결과 2]
숫자 입력 : ㅇㅅㅇ
숫자를 입력해주세요!
*/
out 을 사용하는 TryParse() 에 대해서 알아보았습니다.
이번에는 out 키워드를 사용하는 메서드를 만들어보겠습니다.
class Program
{
static void NextPosition(int x, int y, int vx, int vy,l out int rx, out int ry)
{
// 다음 위치 = 현재 위치 + 현재 속도
rx = x + vx;
ry = y + vy;
}
static void Main(string[] args)
{
int x = 0;
int y = 0;
int vx = 1;
int vy = 1;
Console.WriteLine("현재 좌표 : (" + x + "," + y + ")");
NextPosition(x, y, vx, vy, out x, out y); // out 키워드를 뭍여서 매개변수를 넣어줘야 합니다.
Console.WriteLine("다음 좌표 : (" + x + "," + y + ")");
}
}
/*
[실행 결과]
현재 좌표: (0,0)
다음 좌표: (1,1)
*/
'C# > 클래스와 객체지향' 카테고리의 다른 글
C# 클래스와 객체지향 - 21. 구조체 (0) | 2024.05.29 |
---|---|
C# 클래스와 객체지향 - 19. 인덱서 (0) | 2024.05.29 |
C# 클래스와 객체지향 - 18. 제네릭 (1) | 2024.05.29 |
C# 클래스와 객체지향 - 17. 상속과 오버라이딩 제한 (0) | 2024.05.29 |
C# 클래스와 객체지향 - 16. 하이딩과 오버라이딩 (0) | 2024.05.29 |