ref & out 차이
2016. 12. 12. 13:02ㆍC# 콘솔( Console )/키워드, 식별자, 주석
1. ref
메소드를 이용한 Swap메소드 ( Call By Reference )
-> ref는 메소드를 선언할 때 매개변수 앞에 ref를 선언해주고, 호출할 때에도 마찬가지로 ref를 선언하여 호출하여야합니다.
-> ref는 초기화하지 않지 않을 경우 "오류 1 할당되지 않은 'num1' 지역 변수를 사용했습니다. C:\Users\MyHome\Desktop\HelloWorld\HelloWorld\Program.cs 14 68 HelloWorld " 에러가 발생하게 됩니다.
ex1) ref로 사용할 변수를 초기화하지 않아 에러발생
static void Main(string[] args) { int num1, num2; Console.WriteLine("매개변수 스왑 전 :num1 = {0}, num2 = {1}", num1, num2); swap(ref num1, ref num2); Console.WriteLine("매개변수 스왑 후 :num1 = {0}, num2 = {1}", num1, num2); } static void swap(ref int num1, ref int num2) { int num_swap = num1; num1 = num2; num2 = num_swap; }
|
2. out
-> out은 ref와 비슷하게 변수의 주소를 전달하여 사용되지만 따로 변수를 초기화하지 않고 사용이 가능하다는 점에서 차별화됩니다.
ex2)
static void Main(string[] args) {int num1, num2; swap(out num1, out num2); Console.WriteLine("매개변수 스왑 후 :num1 = {0}, num2 = {1}", num1, num2); } static void swap(out int num1, out int num2) { num1 = 77; num2 = 7; int num_swap = num1; num1 = num2; num2 = num_swap; } |
'C# 콘솔( Console ) > 키워드, 식별자, 주석' 카테고리의 다른 글
params (0) | 2016.12.12 |
---|---|
키워드 & 식별자 & 주석 (0) | 2016.12.11 |