C# Method

m._.jooong·2023년 3월 2일
0

Unity C#

목록 보기
11/22
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// C# 메서드(Method)      //C, C++ 함수(Function)
// 용도 : 코드를 재활용하기 위한 용도로도 사용이 되고,
// 절차지향적 언어에서 부품(기능)을 만드는 용도로도 사용된다.
// 즉, 메서드란 코드를 재활용 하거나 코드를 부품화하고 싶을 때 사용하는 문법

// 매개변수, parameter, 인자(인수)
// 인자 == 매개변수
// 인수 == 넘기는 값
// [접근 수식자] 리턴형 메서드이름(데이터형 매개변수, 데이터형 매개변수, ...)
// {
//      실행코드
// }

// 리턴형과 매개변수에 따른 메서드의 종류
// 1, 리턴형과 매개변수가 모두 존재하는 형태
// 2, return 형이 없고, 매개변수가 있는 형태
// 3, return 형이 없고, 매개변수도 없는 형태
// 4, return 형이 있고, 매개변수는 없는 형태

public class Test_1 : MonoBehaviour
{
    //1, 리턴형과 매개변수가 모두 존재하는 형태
    public int Sum(int a, int b)
    {
        int c = a + b;
        return c;
    }

    //2, return 형이 없고, 매개변수가 있는 형태
    public void Hamsu(int Kor, int Eng, int Math)
    {  //void : 리턴값이 없다는 의미
        int a_Hap = Kor + Eng + Math;
        Debug.Log("총점 : " + a_Hap);
        //void : 리턴값이 없다는 뜻으로 생략 가능하다.

        if (a_Hap < 20)
            return;  //<-- void형 함수에서 return이라고만 써주면 함수를 즉시 빠져 나가게 된다.

        Debug.Log("평균 : " + (a_Hap / 3.0f).ToString("F2"));
    }

    //3, return 형이 없고, 매개변수도 없는 형태
    public void PrintGuGuDan()
    {
        int a_Dan = 7;
        for (int ii = 0; ii < 10; ii++)
            Debug.Log(a_Dan + " * " + ii + " = " + (a_Dan * ii));
    }

    //4, return형이 있고, 매개변수는 없는 형태
    float m_Velocity = 10.0f;

    public bool IsMove()
    {
        if (m_Velocity <= 0.0f)
            return false;

        return true;
    }

    // Start is called before the first frame update
    void Start()
    {
        int AAA = MyMethod(111, 222);   //<-- 메서드의 호출(메서드의 사용)

        int BBB = MyMethod(12, 34);

        int CCC = MyMethod(77, 88);

        Debug.Log(AAA + " : " + BBB + " : " + CCC);

        //Sum(11, 23);  //<-- 리턴형이 있는 함수여도 리턴값을 받아서 사용하지 않아도 된다.
        //int ABC = Sum(11, 22) + 99;
        Debug.Log(Sum(11, 22)); //<-- 메서드의 호출

        Hamsu(100, 2, 3); //<-- 메서드의 호출

        PrintGuGuDan(); //<-- 메서드의 호출

        bool Result = IsMove();
        if (Result == true)
            Debug.Log("움직이고 있어");
        else
            Debug.Log("멈춰 있어");
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    public int MyMethod(int a, int b)  //<-- 메서드의 정의(설계도)
    {
        int c = a + b;
        return c;
    }
}

0개의 댓글