본문 바로가기
프로그래밍/Unity

[C#] 메소드 관련

by 뽀도 2016. 12. 21.

메소드란?

메소드 : 객체 지향 프로그래밍에서 사용하는 용어, c/c++에서는 함수라고 불린다. 메소드는 코드를 하나의 이름으로 묶은것이고, 이렇게 묶은 코드는 메소드를 호출하면서 실행 할 수 있다.
이를 메소드를 호출한다고 한다.
- 객체의 일을 처리하는 방법, 또는 방식이라 생각하면 쉽다.
- 클래스의 기능처리를 하는것이 메소드다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace study_csharp
{
    class c06Calculator
    {
        class Calculator
        {
            public static int Plus(int a, int b)
            {
                return a+b;
            }
            public static int Minus(int a, int b)
            {
                return a - b;
            }

        }
        class MainApp
        {
            public static void Main()
            {
                int result = Calculator.Plus(3, 4);
                Console.WriteLine(result);

                result = Calculator.Minus(5, 2);
                Console.WriteLine(result);
            }

        }
    }
}


Return

- 점프문의 한 종류, 프로그램의 흐름을 갑자기 호출자에게 돌려 놓는다.
- 메소드가 반환할 것이 아무겂도 없는 경우, 반환 형식이 void인 경우에도 return 문을 사용할 수 있다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace study_csharp
{

    class c06Return
    {
        static int Fibonacci(int n)
        {
            if (n < 2)
                return n;
            else
                return Fibonacci(n - 1) + Fibonacci(n - 2);
        }

        static void PrintProfile(string name, string phone)
        {
            if(name == "")
            {
                Console.WriteLine("이름을 입력하세요");
                return;
            }
            Console.WriteLine("name {0}, Phone:{1}", name, phone);
        }

        static void Main(string[] args)
        {
            Console.WriteLine("10번째 피보나치 수 : {0}", Fibonacci(10));

            PrintProfile("", "123-456");
            PrintProfile("이동욱", "456-1230");
        }
    }
}

call by value, call by reference

값에 의한 전달 call by value

- 메소드를 호출할 때 데이터를 복사해서 매개 변수에 넘기는 것.

참조에 의한 전달 call by reference

- 매개 변수가 메소드에 넘겨진 원본 변수를 직접 참조 한다.
- 메소드 안에서 매개 변수를 수정하면 이 매개 변수가 참조 하고 있는 원본 변수에 수정이 이루어 진다.
> ref 키워드 사용
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace study_csharp
{
    class c06SwapByValue
    {
        // 값에 의한 전달 call by value, swap 실패
        public static void Swap(int a, int b)
        {
            int temp = b;
            b = a;
            a = temp;
        }
        // 참조에 의한 전달 call by reference swap  성공
        public static void Swap2(ref int a,ref int b)
        {
            int temp = b;
            b = a;
            a = temp;
        }

        static void Main(string[] args)
        {
            int x = 3;
            int y = 4;

            Console.WriteLine("x : {0}, y : {1}", x, y);
            Swap(x,y);
            Console.WriteLine("swap -> x : {0}, y : {1}", x, y);
            Swap2(ref x,ref y);
            Console.WriteLine("swap2 -> x : {0}, y : {1}", x, y);
            
        }
    }
}

반응형

'프로그래밍 > Unity' 카테고리의 다른 글

[c#] is/as 연산자  (0) 2016.12.26
[c#] class 객체  (1) 2016.12.26
[C#] DateTime 주의 사항  (0) 2016.07.31
sealed 클래스  (0) 2015.06.12
Object class 의 Empty 체크하기!  (0) 2015.06.12

댓글