본문 바로가기

C#/기본 문법

C# 기초 문법 정리 - 함수

using System;

namespace Rookiss_CSharp
{
    class Program
    {
        // 메소드(C++에서는 함수, 게임업계에서도 함수라고 함)
        // 한정자 반환형식 이름(매개변수목록)
        static void AddOne(int number) // 매개변수 : 복사
        {
            number = number + 1;
        }

        static void AddOneRef(ref int number) // 매개변수 : 참조
        {
            number = number + 1;
        }

        static int AddOne2(int number) // 값 참조없이 반환(이 방법이 제일 베스트)
        {
            return number + 1;
        }

        //📘 out 키워드란?
        // C#에서 out 매개변수는 함수가 여러 개의 값을 반환할 때 사용됩니다.
        // 함수 안에서 반드시 값을 할당해야 하며, 호출하는 쪽에서는 초기화하지 않고 넘겨도 됩니다.
        // out은 out 값 주소 참조해서 결과할당
        static void Divide(int a, int b, out int result1, out int result2)
        {
            result1 = a / b;
            result2 = a % b;
        }

        static float Multiply(float a, float b) // 함수 오버로딩(매개변수 타입, 개수등 달라야함)
        {
            return a * b;
        }

        static int Multiply(int a, int b = 10, int c = 20) // 매개변수 디폴트값 지정가능
        {
            return a * b * c;
        }

        static void Main(string[] args)
        {

            int number = 0;
            Program.AddOne(number); // 값 복사해서 넘김
            Console.WriteLine(number); // 0


            Program.AddOneRef(ref number); // 참조로 넘김
            Console.WriteLine(number); // 1


            number = Program.AddOne2(number); // 값 참조없이 return으로 1더함
            Console.WriteLine(number); // 2


            int num1 = 10;
            int num2 = 3;

            int result1;
            int result2;
            Program.Divide(10, 3, out result1, out result2); // 값을 여러개 반환해야 할 경우 유용


            // 아래 키워드 둘다 Call By Reference
            // ref : 함수에 값 전달 & 수정
            // out : 함수가 여러 개의 값을 반환하도록 할


            // C++은 엄격히 순서를 다 지켜야 하지만, C#은 디폴트 매개변수 원하는 부분만 입력가능
            int result3 = Multiply(20, c:100);
        }
    }
}

 

정리본

출처: https://www.inflearn.com/course/%EC%9C%A0%EB%8B%88%ED%8B%B0-mmorpg-%EA%B0%9C%EB%B0%9C-part1

 

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문| Rookiss - 인프런 강

현재 평점 4.9점 수강생 6,977명인 강의를 만나보세요. 기초 프로그래밍 지식이 없는 사람들을 위한 C# 프로그래밍 기초 강의입니다. 문법 암기 위주의 수업이 아니라, 최대한 필요한 부분만을 요

www.inflearn.com

23 ~ 28강 오버로딩까지