원래 메소드는 return으로 결과를 하나로만 반환한다
여러개 반환하고 싶다면? 출력전용매개변수 out 사용
출력 전용 매개변수 out
- 매개변수를 목록화 할 수 있어 복수개 반환 가능
- out대신 ref키워드를 똑같은 위치에 똑같이 써줘서 구현할 수 있지만, out을 사용하면 안전한 방법으로 같은 일을 할 수 있음
안전한 방법으로라는 말은 ref를 사용할 시 해당 매개변수에 결과를 저장하지 않아도 컴파일러가 경고를 하지않지만,
out은 에러메세지 출력
사용방법
메소드 선언시
접근한정자 반환형식 메소드이름(매개변수1, 매개변수2, ....매개변수n, out int 출력전용매개변수이름, out int 출력전용매개변수2이름....)
메소드 호출 시
메소드이름( 인자1, 인자2, out int 변수1이름, out int 변수2이름..)
using System;
using static System.Console;
namespace thistiscsharp
{
class MainClass
{
public static void Out(int a, int b, out int dev, out int les)
{
//a,b는 인자를 받는 원래 알던 연산에 쓰이는 실제 매개변수고,
//out으로 수식한 dev와 les는 출력 전용 return값이라고 생각하면 된다
dev = a / b;
les = a % b;
}
public static void Main(string[] args)
{
int x = 7;
int y = 3;
//int c;
//int q;
Out(x, y, out int z, out int q);
//위 처럼 따로 변수미리 선언할 필요 없이
//메소드 호출과 동시에 즉석으로 선언하면 됨
//Out메소드의 출력전용매개변수(return값) dev,les가
//각각 c와 q에 저장된다
Console.WriteLine($"dev = {z}, les = {q}");
}
}
}
원래 메소드는 return으로 결과를 하나로만 반환한다
여러개 반환하고 싶다면? 출력전용매개변수 out 사용
출력 전용 매개변수 out
- 매개변수를 목록화 할 수 있어 복수개 반환 가능
- out대신 ref키워드를 똑같은 위치에 똑같이 써줘서 구현할 수 있지만, out을 사용하면 안전한 방법으로 같은 일을 할 수 있음
안전한 방법으로라는 말은 ref를 사용할 시 해당 매개변수에 결과를 저장하지 않아도 컴파일러가 경고를 하지않지만,
out은 에러메세지 출력
사용방법
메소드 선언시
접근한정자 반환형식 메소드이름(매개변수1, 매개변수2, ....매개변수n, out int 출력전용매개변수이름, out int 출력전용매개변수2이름....)
메소드 호출 시
메소드이름( 인자1, 인자2, out int 변수1이름, out int 변수2이름..)
using System;
using static System.Console;
namespace thistiscsharp
{
class MainClass
{
public static void Out(int a, int b, out int dev, out int les)
{
//a,b는 인자를 받는 원래 알던 연산에 쓰이는 실제 매개변수고,
//out으로 수식한 dev와 les는 출력 전용 return값이라고 생각하면 된다
dev = a / b;
les = a % b;
}
public static void Main(string[] args)
{
int x = 7;
int y = 3;
//int c;
//int q;
Out(x, y, out int z, out int q);
//위 처럼 따로 변수미리 선언할 필요 없이
//메소드 호출과 동시에 즉석으로 선언하면 됨
//Out메소드의 출력전용매개변수(return값) dev,les가
//각각 c와 q에 저장된다
Console.WriteLine($"dev = {z}, les = {q}");
}
}
}