Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 배열
- 기술면접
- c#
- 프래그멘테이션
- list
- 반복문
- Queue
- 멀티쓰레드
- map
- 벡터
- 인프런
- thread
- std::unordered_map
- std::map
- 스택영역
- 자료구조
- static_cast
- 리스트
- 힙영역
- vector
- 스택
- 큐
- 공부
- 트리
- MonoBehaviour
- 해쉬맵
- rookiss
- 알고리즘
- 객체지향
- 차이점
Archives
- Today
- Total
호빵의 IT 개발소
[C#] 14. ref, out 본문
//ref(참조)를 사용한 a <-> b Swap함수 만들기
ref(참조)는 밑에 예제로 간단하게 설명하자면 Main함수에서 선언된ref num1과ref num2 안에 있는 숫자를 진퉁으로 Swap함수 매개변수목록에 있는 ref int a, ref int b로 넘겨준 다음 Swap에서 a과 b의 숫자를 서로 교환하는 작업을 한 뒤 다시 ref num1과 ref num2로 넘겨주는 작업입니다.
class Program
{
Static void Swap(ref int a, ref int b)
{
int temp = a;
a = b;
b = temp;
}
Static void Main(string[] args)
{
int num1 = 3;
int num2 = 7;
Program.Swap(ref num1, ref num2);
Console.WriteLine(num1);
Console.WriteLine(num2);
}
}
//out도 ref와 마찬가지로 참조할때 쓰입니다.
out은 참조를 통해 인수를 전달할 수 있게 됩니다. 매개변수에 대한 작업이 인수에서 수행됩니다. ref와 비슷하긴 하지만 ref는 변수를 넘기기 전에 초기화 작업을 해야 합니다. out은 매개변수를 사용하려면 메서드 정의와 호출 메서드가 모두 명시적으로 out을 사용하여야 합니다. 밑에 예제는 out을 활용하여 Main함수에서 18, 4값을 Dvide에서 나누기와 나머지값을 구한뒤 result1,2에 저장하여 진퉁값을 다시 Main에 넘겨주게 됩니다.
Static void Dvide(int a, int b, out int result1, out int result2)
{
result1 = a / b;
result2 = a % b;
}
Static void Main(string[] args)
{
int num1 = 18;
int num2 = 4;
int resul1;
int resul2;
Divide(18, 4, out result1, out result2);
Console.WriteLine(result1); // 4 출력
Console.WriteLine(result2); // 2 출력
}
---------------------------------------------------------------------------------------------------------------------------
참고 : [인프런] Rookiss님의 [C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
'C#, 유니티 > C# 기초' 카테고리의 다른 글
| [C#] 객체지향 기본 (0) | 2022.01.02 |
|---|---|
| [C#] 15. 오버로딩 (0) | 2021.12.31 |
| [C#] 13. 메소드 함수 (0) | 2021.12.30 |
| [C#] 12. break, continue (0) | 2021.12.30 |
| [C#] 11. for문 (0) | 2021.12.29 |
Comments