회원 로그인
정보기억 정보기억에 체크할 경우 다음접속시 아이디와 패스워드를 입력하지 않으셔도 됩니다.
그러나, 개인PC가 아닐 경우 타인이 로그인할 수 있습니다.
PC를 여러사람이 사용하는 공공장소에서는 체크하지 마세요.
소셜네트워크 서비스를 통해서 로그인하시면 별도의 로그인 절차없이 회원서비스를 이용하실 수 있습니다.


최근 게시물

1.노션에서 작성 중

1.노션에서 작성 중

개편하기 전까지 노션에서 작성 중

2024.04.04//read more

2.ChatGPT

2.ChatGPT

OpenAI로 대규모 언어 모델대화형...

2023.03.16//read more

3.노코딩 게임 엔진 - 빌..

3.노코딩 게임 엔진 - 빌..

빌드 지원안드로이드iOS윈도우즈특이사...

2023.03.14//read more

4.(완료) 미접속 회원 정..

4.(완료) 미접속 회원 정..

[완료] 36명의 회원을 정리하였습니...

2023.02.16//read more

5.매뉴얼 플러스 - 전자제..



안정적인 DNS 서비스 DNSEver
DNS Powered by DNSEver.com


참조 ref, out (with Unity)

푸딩뱃살 | 2015.12.08 11:22 | 조회 6058
참조 ref, out

ref
- C++의 레퍼런스 문법과 같은 기능을 수행함
- 단 ref로 연결할 변수는 반드시 초기화 되어 있어야 함

out
- C++의 레퍼런스 문법과 같은 기능을 수행함
- ref 문법과 같으나 초기화를 하지 않아도 됨

[기억클래스]
- 자동 변수 : 함수의 선언된 매개변수로 함수 호출시 생성하고 호출이 종료될때 자동 소멸함
- 지역변수 : 블럭안에서 선언된 변수로 사용범위가 블록 내부로 한정됨
- 전역 변수 : 생략 (설명만)
- 정적 변수 : 클래스 설명 부분에서 설명함
- 클래스 멤버 변수 : 클래스 설명 부분에서 설명함

using UnityEngine;
using System.Collections;

public class Out_test : MonoBehaviour {

    void Start()
    {
        int a = 10; // 생성(초기화) 시키고 참조함 -> ref
        int b; // 생성을 요청해서 참조함 -> out
        Function1(ref a);
        Function2(out b);
    }

    // 기본 메소드
    void Function1(ref int value)
    {
        // 초기화된 변수 출력
        Debug.Log("value : " + value);
        value = 10; // ref : 할당된 메모리를 찹조함
    }

    // out 메소드
    void Function2(out int value)
    {
        // out : 할당을 먼저해서 참조를 확보한 후
        value = 10;
        // 출력
        Debug.Log("value : " + value);
    }
}

using UnityEngine;
using System.Collections;
  
public class refout : MonoBehaviour {
  
    void Start () {
  
        int value1 = 10;
        int value2 = 20;
  
        Debug.Log("[교체전] value1 : " + value1);
        Debug.Log("[교체전] value2 : " + value2);
  
        Swap(value1, value2);
  
        Debug.Log("[교체후] value1 : " + value1);
        Debug.Log("[교체후] value2 : " + value2);
  
        Debug.Log("[ref를 이용한 참조1]=========================================");
  
        Debug.Log("[교체전] value1 : " + value1);
        Debug.Log("[교체전] value2 : " + value2);
  
        // value1, value2를 참조로 넘겨줌
        RefSwap(ref value1, ref value2);
  
        Debug.Log("[교체후] value1 : " + value1);
        Debug.Log("[교체후] value2 : " + value2);
  
        Debug.Log("[ref를 이용한 참조2]=========================================");
  
        int inputValue1 = 0; // ref 변수는 사용전에 반드시 초기화 해야함
        int inputValue2 = 0;
        // int inputValue2;
  
        // inputValue1, inputValue2를 참조로 넘겨줌
        RefInput(ref inputValue1, ref inputValue2);
  
        Debug.Log("[입력후] inputValue1 : " + inputValue1);
        Debug.Log("[입력후] inputValue2 : " + inputValue2);
  
        Debug.Log("[out를 이용한 참조2]=========================================");
  
        int inputValue3; // out 변수는 사용전에 초기화 하지 않아도 됨
        int inputValue4;
  
        // inputValue3, inputValue4를 참조로 넘겨줌
        OutInput(out inputValue3, out inputValue4);
  
        Debug.Log("[입력후] inputValue3 : " + inputValue3);
        Debug.Log("[입력후] inputValue4 : " + inputValue4);
    }
  
    // 일반 교체 함수
    void Swap(int value1, int value2)
    {
        int temp = value1;
        value1 = value2;
        value2 = temp;
    }
  
    // ref를 이용한 교체 함수
    void RefSwap(ref int value1, ref int value2)
    {
        int temp = value1;
        value1 = value2;
        value2 = temp;
    }
  
    // ref를 이용한 입력 함수
    void RefInput(ref int inputValue1, ref int inputValue2)
    {
        inputValue1 = 30;
        inputValue2 = 50;
    }
  
    // out를 이용한 교체 함수
    void OutInput(out int inputValue3, out int inputValue4)
    {
        inputValue3 = 30;
        inputValue4 = 50;
    }
}
285개(1/15페이지)
프로그래밍
번호 제목 글쓴이 조회 날짜
285 [Python] 동적 import - 모듈을 변수로 받아오기 푸딩뱃살 405 2022.10.27 10:45
284 [Python] 파이썬 3.7.7과 3.9.7의 os.path.expanduser() 차이 푸딩뱃살 436 2022.08.18 12:22
283 [Python] error: Microsoft Visual C++ 9.0 is required. 첨부파일 푸딩뱃살 656 2022.08.03 13:35
282 [Python] pyscript 첨부파일 푸딩뱃살 433 2022.06.09 11:21
281 [Python] float is / float not is 푸딩뱃살 581 2022.03.02 15:03
280 [Python] 이터널 문자열 f 푸딩뱃살 807 2022.01.27 16:35
279 [Python] is와 ==의 차이 푸딩뱃살 475 2021.11.25 15:54
278 [Python] Error: ImportError: file line 1: Ba 푸딩뱃살 885 2021.11.16 11:24
277 [Python] 파이썬 디컴파일 - uncompyle6 첨부파일 푸딩뱃살 750 2021.11.10 14:46
276 [Python] 파이썬 확장자 설명 푸딩뱃살 536 2021.11.03 14:38
275 [참고] 웹 fbx 뷰어 푸딩뱃살 452 2021.10.19 15:46
274 [Python] enumerate() 푸딩뱃살 485 2021.10.13 14:44
273 [Python] 아나콘다에서 가상 환경 첨부파일 푸딩뱃살 693 2020.11.21 00:26
272 [Python] pip로 설치 때 퍼미션 에러 사진 첨부파일 푸딩뱃살 1246 2020.06.06 17:13
271 [Python] OpenCV 10-3. 이미지 Thresholding - Otsu's Binarizatio 사진 푸딩뱃살 653 2020.06.05 14:01
270 [Python] OpenCV 10-2. 이미지 Thresholding - Adaptive Threshold 사진 푸딩뱃살 673 2020.06.05 13:58
269 [Python] OpenCV 10-1. 이미지 Thresholding 사진 푸딩뱃살 566 2020.06.05 13:56
268 [Python] OpenCV 9-2. 색 추적 푸딩뱃살 740 2020.06.02 23:29
267 [Python] OpenCV 9-1. 색공간 바꾸기 푸딩뱃살 627 2020.06.02 23:27
266 [Python] OpenCV 8-3. 이미지 비트 연산 사진 푸딩뱃살 509 2020.06.02 23:21