[C#] 13일차 - 89. 메소드에 인수를 전달하는 세 가지 방법C#/C#200제2021. 2. 9. 19:15
Table of Contents
1. 값에 의한 호출
인수의 값을 메소드의 매개변수에 복사한다. - C#에서의 디폴트
2. 참조에 의한 호출
ref키워드로 인수를 메소드로 전달하면 실제로는 주소를 전달
3. out에 의한 호출
메소드에서 out키워드를 사용한 변수는 호출한 곳으로 값을 내보내 줄때만 사용된다.
out키워드를 사용한 인수의 값은 메소드 내에서 사용되지 않는다.
out키워드를 사용하면 메소드에서 여러 개의 값을 return하는 효과가 있다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A089_MethodArguments
{
class Program
{
static void Main(string[] args)
{
int a = 3;
Sqr(a);
Console.WriteLine("Value: {0}", a); // return 받은게 아니기때문에 기존의 3이 출력된다.
int b = 3;
Sqr(ref b);
Console.WriteLine("ref: {0}", b); // return 하지않아도 참조된 값이 변했기 때문에 9가 출력된다.
string name;
int id;
GetName(out name, out id);
Console.WriteLine("out: {0} {1}", name, id);
}
private static void Sqr(int x)
{
x = x * x;
}
private static void Sqr(ref int x)
{
x = x * x;
}
private static void GetName(out string name, out int id)
{
Console.WriteLine("Enter name: ");
name = Console.ReadLine();
Console.WriteLine("Enter id: ");
id = int.Parse(Console.ReadLine());
}
}
}
반응형
'C# > C#200제' 카테고리의 다른 글
[C#] 13일차 - 91. 선택적 인수와 명명된 인수 (0) | 2021.02.09 |
---|---|
[C#] 13일차 - 90. 가변길이 매개변수 params의 사용방법 (0) | 2021.02.09 |
[C#] 13일차 - 88. DateTime Format (2) | 2021.02.09 |
[C#] 13일차 - 87. TimeSpan을 이용한 생애계산기 (0) | 2021.02.09 |
[C#] 13일차 - 86. TimeSapn 구조체의 사용 방법 (0) | 2021.02.09 |
@반나무 :: 반나무_뿌리
3년차 WPF 개발자입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!