티스토리 뷰
매개인자 전달시 out 또는 ref 키워드와 함께 전달하면 call by reference처럼 변경된 값을 다시 되돌려 받을 수 있다.
out과 ref 키워드의 차이점을 간단하게 정리 해둔다.
static void Main(string[] args)
{
int a = 0;
int b; // out 인자로 쓰일 변수는 초기화 하지 않아도 가능
RefTest(ref a);
OutTest(out b);
// ref와 out둘다 전달한 인자값을 돌려 받는다.
Console.WriteLine("a in Main : " + a); // 6
Console.WriteLine("b in Main : " + b); // 3
Console.WriteLine("\n\nPress \"Enter\" key...");
Console.ReadLine();
}
static void RefTest(ref int a)
{
a = 5;
a++;
Console.WriteLine("a in refTest : " + a); // 6
}
static void OutTest(out int b)
{
// out 할 인자를 함수 내에서 초기화 해야 한다.
// 그러므로 인자의 원래값은 초기화 되지 않은 값이라도 전달이 가능하다.
// b++; // b를 초기화 하지 않은 상태에서는 에러
b = 2; // 초기화
b++;
Console.WriteLine("b in outTest : " + b); // 3
}
'C#' 카테고리의 다른 글
C#: Hash암호화(MD5, SHA256, SHA384, SHA512) 및 비교와 AES256 암/복호화 DLL (0) | 2016.12.17 |
---|---|
C#: ListView Colum 정렬 DLL (5) | 2016.10.06 |
C#: dll을 포함한 단일 exe배포 방법 (4) | 2016.10.06 |
C#: HTML 또는 Uri의 문자열을 인코딩하는 2가지 방법 (0) | 2016.10.06 |
C#: Java의 System.currentTimeMillis() 구현 (0) | 2016.10.06 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday