본문 바로가기
카테고리 없음

[코딩일기] C# 함수(ref, out)

by mania2321 2024. 7. 16.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Helloworld_2 : MonoBehaviour
{
    // 함수
    // 변수는 중괄호 {}를 기준으로 입력 및 사용한다. 

    int Square(int x)                   // C# 에서는, 함수 대문자로 시작 (변수는 소문자)
    {
        return x * x;
    }

    void Like(out int n)                    // void 형으로 선언을 했기 때문에 return 값이 없어도 아무런 문제가 생기지 않음
    {
        n = 5;                              // out 을 사용하면, 해당 함수에서 값을 입력해 줘야 됨.
        for(int i = 0; i < n; i++)
        {
            Debug.Log("좋아요");
        }

        n = 5;
    }



    void Start()             // void 함수 에서 한 가지 주의할 점 ==> 여기에다가도 return을 쓸 수 있음. 하지만 void는 return값이 없기 떄문에 return 뒤에다가 아무것도 안적어도 된다. return을 적으면 해당 함수의 실행을 종료시킬 수 있다. 
    {
        int x = 3;
        Debug.Log(x);
        Like(out x);        // ref는, 어떤 변수가 이미 만들어져있고 값이 들어가 있고, 그 값을 저 함수에서 변형하는 것. 장소와 값을 둘 다 넘겨받아서 변형할 수 있음. out은 애초에 어떤 값을 보내는게 아니라, 돌려받는 용도로 쓰는 것. 장소만 넘겨주는 것.
        Debug.Log(x);       // 최초에 3이 들어갔지만 Like 함수 안에 3이 들어가서 '좋아요' 를 3번 반복 후 마지막에 n = 5;가 들어갔으므로 x 값이 5로 바뀐 것.
    }
}

댓글